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

Съдържание

UBOUND или известна също като Upper Bound, тази функция във VBA се използва с нейната противоположна функция, която LBOUND или известна също като функция Lower Bound, използването на тази функция е да се определи дължината на масив в код и както подсказва името UBOUND се използва за дефиниране на горната граница на масива.

Функция VBA UBOUND

Как да разберете максималната дължина на масива в Excel? Да, можем ръчно да видим и актуализираме максималната дължина на масива, но ако го правите през цялото време, тогава днес е краят му, защото имаме функция, наречена UBOUND, за да определим максималната дължина на масива. Следвайте тази статия, за да получите повече познания за функцията UBOUND в Excel VBA.

UBOUND означава Upper Bound. Често пъти при кодиране може да се наложи да намерим максималната дължина на масива. Например MyResult (24) означава име на масив MyResult съдържа 25 стойности, тъй като масивът започва от нула, а не от една. Така че 24 означава +1, т.е. общо 25 стойности.

Тук максималната дължина на масива е 24. Вместо да подаваме дължината на масива ръчно, можем да използваме вградената функция UBOUND, за да получим максималната дължина на масива.

Кодът е: UBOUND (MyResult), т.е. UBOUND (24)

Така че функцията Excel VBA UBOUND представлява горната граница на размера на масива.

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

Формулата на VBA UBOUND е много проста, тъй като има само два параметъра.

UBound (Име на масив (, Измерение))
  • Име на масив: Това е името на името на масива, което сме дефинирали. Например в горния пример MyResult е името на масива.
  • (Измерение): Ако масивът има повече от едно измерение, тогава трябва да посочим измерението на масива. Ако го игнорирате, той ще третира първото измерение по подразбиране.

Функцията Excel VBA UBOUND е много полезна при определяне дължината на контурите, докато се изпълняват цикли.

Примери за функция UBOUND в Excel VBA

По-долу са дадени практическите примери за функцията VBA UBound.

Пример # 1

За да започна производството, позволете ми да напиша простия код. Следвайте стъпките по-долу, за да приложите функцията VBA UBOUND.

Стъпка 1: Стартирайте Excel макроса и дефинирайте името на променливата.

Код:

Sub Ubound_Example1 () Dim ArrayLength (0 до 4) като низ

Стъпка 2: Ще присвоя стойности на това име на масив.

Код:

Sub Ubound_Example1 () Dim ArrayLength (0 до 4) Като String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA клас" Край Sub

Стъпка 3: Сега, използвайки поле за съобщение с функцията UBOUND, ще видим максималната дължина на масива.

Код:

Sub Ubound_Example1 () Dim ArrayLength (0 до 4) Като String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" MsgBox "Upper Bound Length is:" & UBound (ArrayLength) End Sub

Стъпка 4: Стартирайте този код, като натиснете клавиша F5, или можете също да стартирате кода ръчно, както е показано на екрана по-долу.

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

Подобно на това, използвайки функцията Excel VBA UBOUND, можем да получим дължината на горната граница на масив.

Пример # 2 - Използване на функцията Excel VBA UBOUND за копиране на данните

Да приемем, че имате списък с данни в един Excel лист, като този по-долу.

This data is going to update on a daily basis, and you need to copy this data to the new sheet every time it updates. Updating this manually will take a considerable amount of time in your workplace, but I will show you a simple macro code to automate this.

Step 1: Create a macro and define the array variable.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant End Sub

Step 2: Now activate the datasheet by refereeing to its name.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate End Sub

Step 3: Now assign the data range to the defined variable by using the below code.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) End Sub

Step 4: Now add a new worksheet to the workbook.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add End Sub

Step 5: Now add the data to the newly added sheet by using the Excel VBA UBOUND function in the form of the below code.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add Range(ActiveCell, ActiveCell.Offset(UBound(DataRange, 1) - 1, UBound(DataRange, 2) - 1)) = DataRange End Sub

The above code will offset the cells by the maximum length returned by the UBOUND function, and this range will be equal to the value of the array name “DataRange.

Step 6: Now run this code. It will paste the value to the new sheet.

This code is a dynamic one because even when the data increases horizontally and vertically, it will automatically take the range. Now I will add some dummy lines to the data.

Now I will once again run this code. It will now add the newly added lines as well.

Code:

Sub Ubound_Example2 () Dim DataRange () Като листове за варианти ("Data Sheet"). Активирайте DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Работни листове. Добавяне на диапазон (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Неща за запомняне

  • UBOUND връща максималната дължина на масива.
  • Масивът започва от 0, а не от 1.
  • Ако искате по-ниската стойност на масива, тогава трябва да използвате VBA LBOUND.
  • Ако масивът има повече от едно измерение, трябва да посочите и номера на измерението.

Интересни статии...