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. Можете да разгледате и другите ни предложени статии -
- VBA разделена функция с примери
- Excel буквена функция
- VBA мач
- Функция на тавана в Excel
- Как да използвате VBA работни листове?