VBA UBound - Как да използвате Excel VBA UBound функция (примери)

Съдържание:

Anonim

Excel VBA UBound функция

Колко често се сблъсквате със ситуация, в която трябва да споменете максималната дължина или горната граница на данните от масива, работещи с Excel? Повечето пъти, нали? И как намирате същото? Може би ръчно през повечето време. Можете обаче да го автоматизирате и да получите максималната дължина или горна граница на масив с помощта на VBA функция, наречена UBound.

Освен това, той има най-красивия начин да пропуснете. Например, ако използвате цикъл For във вашия масив, определено сте искали да циклирате всички елементи на масива. В този случай би било досадна работа да откриете ръчно горната граница и да я споменете в цикъла. Той също така ще намали общата стойност на кода. Следователно функцията VBA UBound е полезна при подобни сценарии.

UBound означава горна граница и тя дава горна граница или максимална дължина на масива в Excel VBA.

Формула за UBound функция в Excel VBA

Excel VBA UBound функция има следния синтаксис.

 UBound (име на масив (, размер)) 

Където,

  • Име на масива : Име на масива, който сте определили. Този аргумент е задължителен / задължителен аргумент.
  • Dimension: незадължителен аргумент, който определя величината на масива. Независимо дали става въпрос за едномерен, двумерен или многоизмерен масив. По подразбиране ще приеме едномерния масив, ако не е посочен.

Тъй като тази функция има само два аргумента, става много по-лесно да запомните синтаксиса на тази функция.

Как да използвам Excel VBA UBound функция?

Ще научим как да използваме VBA UBound функция с няколко примера в Excel.

Можете да изтеглите този шаблон на VBA UBound Excel тук - VBA UBound Excel шаблон

Пример №1 - VBA UBound с едноизмерен масив

Следвайте стъпките по-долу, за да използвате UBound функция в VBA.

Стъпка 1: В раздела Developer кликнете върху Visual Basic, за да отворите VB Editor.

Стъпка 2: Щракнете върху Вмъкване и изберете раздела Модул, за да добавите нов празен модул към VBE.

Стъпка 3: Във VBE започнете да пишете макроса и определете името на променливата.

Код:

 Sub Onedm_Ubound () Dim IndiaCity (4) Като String End Sub 

Тук променливата IndiaCity е дефинирана с 5 елемента. Типът на променливата е низ.

Забележка: масивът започва от 0 (нула). Следователно, този масив ще се състои от 5 елемента.

Стъпка 4: Задайте стойности на елементите от масива.

Код:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Мумбай" IndiaCity (1) = "Бенгалуру" IndiaCity (2) = "Хайдерабад" IndiaCity (3) = "Делхи" IndiaCity (4) = "Пуне „Край Sub 

Тук нулевият елемент има стойност, присвоена като „Мумбай“, Първият елемент има стойност, присвоена като „Бенгалуру“ и т.н.

Стъпка 5: Използвайте функцията UBound заедно с MsgBox, за да получите горната граница за масива.

Код:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Мумбай" IndiaCity (1) = "Бенгалуру" IndiaCity (2) = "Хайдерабад" IndiaCity (3) = "Делхи" IndiaCity (4) = "Пуне Горната граница на "MsgBox" за масива е: "& UBound (IndiaCity) End Sub 

Стъпка 6: Изпълнете този код, като натиснете F5 директно или ръчно натиснете бутона Run в горния ляв панел. Ще се появи поле със съобщение „ Горната граница за масива е: 4 “.

Моля, обърнете внимание, че функцията UBound не открива горната граница от елементите на масива. Той просто открива максималния брой елементи, които масивът държи.

Пример # 2 - VBA UBound с двуизмерен масив

Следвайте стъпките по-долу, за да използвате UBound функция в VBA.

Стъпка 1: Определете променлива, която може да съдържа двумерни данни.

Код:

 Sub TwoDm_UBound () Dim Array_Test (0 до 6, 1 до 8) като String End Sub 

Стъпка 2: Определете нова променлива Съобщение и го използвайте под MsgBox. Тази променлива ще ни помогне да отпечатаме горните граници и на двете измерения едновременно.

Код:

 Sub TwoDm_UBound () Dim Array_Test (0 до 6, 1 до 8) като String Dim Message MsgBox Message End Sub 

Стъпка 3: Сега опитайте следните изявления, които позволяват на системата да отпечата и двете измерения на масива под едно и също поле за съобщения.

Код:

 Sub TwoDm_UBound () Dim Array_Test (0 до 6, 1 до 8) като String Dim Message = "Горната граница за първото измерение е:" & UBound (Array_Test, 1) & vbCrLf Message = Съобщение и "Горната граница за второто измерение е : "& UBound (Array_Test, 2) & vbCrLf MsgBox Message End Sub 

Двата изявления, споменати в горния код, позволяват на системата да отпечата и двете измерения в едно и също поле за съобщения. Първият оператор съхранява стойността на горната граница за първото измерение в променлива Съобщение и завършва реда (vbCrLf). Второто изречение добавя първата стойност, присвоена на променлива Съобщение и я комбинира с горната граница на вторите измерения с изскачащо съобщение.

Тъй като vbCrLf се използва и в двата оператора, той работи като връщане на нов ред / карета тук и в двете операции.

Стъпка 4: Стартирайте кода, като натиснете F5 или Run бутона и вижте изхода.

По подобни линии можем да преминем до множество измерения и да видим горната граница за всеки от тях.

Пример # 3 - UBound функция за автоматично актуализиране на данните в листа

Да предположим, че имате набор от данни, както е показано по-долу на екрана.

Тези данни се актуализират и трябва да копирате актуализираните данни от време на време. Сега наистина е досадна работа винаги да проверявате за актуализации на данните и след това да ги копирате на новия лист. Отнема и много време. Можем ли да опитаме да го автоматизираме с помощта на UBound функция във VBA? Да видим.

Следвайте стъпките по-долу, за да актуализирате автоматично данните в листа с помощта на VBA UBound функция:

Стъпка 1: Определете променлива чрез създаване на макрос.

Код:

 Sub Ex3_UBound () Dim DataUpdate () като вариант на края Sub 

Стъпка 2: Активирайте работния лист, който съдържа вашите данни. В този случай името на листа е „ Данни “.

Код:

 Sub Ex3_UBound () Dim DataUpdate () като различни варианти („данни“). 

Стъпка 3: Присвойте диапазона на променливата, която току-що създадохме. За целта ще използваме обхвата на активирани листове.

Код:

 Sub Ex3_UBound () Dim DataUpdate () като вариращи таблици ("данни"). Активирайте DataUpdate = диапазон ("A2", диапазон ("A1"). Край (xlDown). 

Стъпка 4: Добавете нов работен лист към вашия Excel, където актуализираните данни могат да бъдат копирани и поставени.

Код:

 Sub Ex3_UBound () Dim DataUpdate () като вариращи таблици („данни“). Активирайте DataUpdate = обхват („A2“, диапазон („A1“). Край (xlDown). 

Стъпка 5: Сега използвайте кодовия ред по-долу, който позволява данните от листа „Данни“ да бъдат копирани и поставени автоматично в новосъздаден лист на excel.

Код:

 Sub Ex3_UBound () Dim DataUpdate () като варианти на таблици („данни“). Активирайте DataUpdate = обхват („A2“, диапазон („A1“). Край (xlDown). ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub 

Горният код ще измести клетките от листа с данни до горната граница, които могат да бъдат получени чрез използваната функция UBound и присвоява диапазона на променливата DataUpdate.

Стъпка 6: Стартирайте кода, като натиснете F5 или Run бутона и вижте изхода.

Както можете да видите, в работната книга на Excel е добавен нов лист, където всички данни от листа „Данни“ се копират автоматично.

Това е динамичен код. Това, което искам да кажа, че е динамично, е, че макар да добавям колона и реда, той автоматично ще бъде копиран в нов лист.

Стъпка 7: Нека добавим някои редове и колони към данните и да видим дали действително работи.

Стъпка 8: Натиснете бутона Run отново, след като информационният лист е актуализиран и вижте магията.

Ако можете да видите, се добавя нов лист (оцветен) и се добавя нова колона на Age, заедно с два нови реда, както и в този лист. Това означава, че каквото и да актуализираме в основния файл (Data), този код автоматично ще копира всичко от това и ще го постави в нов лист.

Неща, които трябва да запомните

  • UBound дава горната граница / максималната дължина на масива, а не горната граница от точките от данни, присъстващи в масива.
  • Масивът винаги започва от 0 -та позиция като успореден на повечето езици за програмиране като C, C ++, Python.
  • Ако вашият масив е многоизмерен, трябва да посочите и аргумента за размерност, който приема цели цели стойности като 1, 2, 3 и др.

Препоръчителни статии

Това е ръководство за функцията на VBA UBound. Тук обсъждаме как да използвате Excel VBA UBound функция заедно с някои практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -

  1. VBA разделена функция с примери
  2. Excel буквена функция
  3. VBA мач
  4. Функция на тавана в Excel
  5. Как да използвате VBA работни листове?