Какво представлява VBA Array?
Масивът се дефинира като място в паметта, способно да съхранява повече от една стойност. Стойностите трябва да са от един и същи тип данни. Да предположим, че искате да съхраните списък с любимите си напитки в една променлива, можете да използвате масива VBA, за да направите това.
Използвайки масив, можете да се обърнете към свързаните стойности със същото име. Можете да използвате индекс или индекс, за да ги различите. Отделните стойности са посочени като елементи на масива на Excel VBA. Те са съседни от индекс 0 до най-високата стойност на индекса.
Този урок предполага, че използвате Microsoft Excel версия 2013. Знанията все още важат и за други версии на Microsoft Excel.
В този урок за програмиране на VBA ще научите -
- Какви са предимствата на масивите?
- Видове масиви във VBA
- Как да използвам Array в Excel VBA
- Тестване на нашето приложение
Какви са предимствата на масивите?
Следват някои от предимствата, предлагани от функцията за масив VBA
- Групирайте логически свързани данни заедно - да предположим, че искате да съхраните списък с ученици. Можете да използвате единична променлива на масива, която има отделни местоположения за категории ученици, т.е. детска градина, начално, средно, средно училище и т.н.
- Масивите улесняват писането на поддържаем код. За същите логически свързани данни ви позволява да дефинирате една променлива, вместо да дефинирате повече от една променлива.
- По-добра производителност - след като масивът е дефиниран, по-бързо е да извличате, сортирате и модифицирате данни.
Видове масиви във VBA
VBA поддържа два вида масиви, а именно;
- Статични - Тези типове масиви имат фиксиран предварително определен брой елементи, които могат да се съхраняват. Не може да се променя размерът на типа данни на статичен масив. Те са полезни, когато искате да работите с известни обекти като брой дни в седмицата, пол и т.н.
Например : Dim ArrayMonth (12) като низ
- Динамични - Тези типове масиви нямат фиксиран предварително определен брой елементи, които могат да се съхраняват. Те са полезни при работа с обекти, които не можете да зададете предварително числото.
Например : Dim ArrayMonth () като вариант
Синтаксис за деклариране на масиви
Статични масиви
Синтаксисът за деклариране на СТАТИЧНИ масиви е както следва:
Dim arrayName (n) as datatype
ТУК,
Код | Действие |
Dim arrayName (n) тип данни |
|
Динамични масиви
Синтаксисът за деклариране на DYNAMIC масиви е както следва:
Dim arrayName() as datatypeReDim arrayName(4)
ТУК,
Код | Действие |
Тип на данните Dim arrayName () |
|
ReDim arrayName (4) |
|
Размери на масива
Масивът може да бъде едно измерение, две измерения или многоизмерен.
- Едно измерение : В това измерение масивът използва само един индекс. Например брой хора от всяка възраст.
- Две измерения : В това измерение масивът използва два индекса. Например, брой ученици във всеки клас. Изисква брой класове и номер на ученици във всеки клас
- Многоизмерност : В това измерение масивът използва повече от два индекса. Например температури през деня. (30, 40, 20).
Как да използвам Array в Excel VBA
Ще създадем просто приложение. Това приложение попълва лист на Excel с данни от масивна променлива. В този пример на VBA Array ще направим следните неща.
- Създайте нова работна книга на Microsoft Excel и я запазете като работна книга с активиран макрос на Excel (* .xlsm)
- Добавете команден бутон към работната книга
- Задайте свойствата на името и надписа на командния бутон
- Програмиране на VBA, който попълва листа на Excel
Нека правим това упражнение стъпка по стъпка,
Стъпка 1 - Създайте нова работна книга
- Отворете Microsoft Excel
- Запазете новата работна книга като VBA Arrays.xlsm
Стъпка 2 - Добавете команден бутон
Забележка: Този раздел предполага, че сте запознати с процеса на създаване на интерфейс в Excel. Ако не сте запознати, прочетете урока VBA Excel Form Control & ActiveX Control. Той ще ви покаже как да създадете интерфейса
- Добавете команден бутон към листа
- Задайте свойството name на cmdLoadBeverage
- Задайте свойството на надписа на Зареждане на напитки
Вашият GUI сега трябва да бъде както следва
Стъпка 3 - Запазете файла
- Щракнете върху бутона запази като
- Изберете Работна книга с активиран макрос на Excel (* .xlsm), както е показано на изображението по-долу
Стъпка 4 - Напишете кода
Сега ще напишем кода за нашето приложение
- Щракнете с десния бутон върху бутона Зареждане на напитки и изберете код за преглед
- Добавете следния код към събитието за щракване на cmdLoadBeverage
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(1) = "Pepsi"Drinks(2) = "Coke"Drinks(3) = "Fanta"Drinks(4) = "Juice"Sheet1.Cells(1, 1).Value = "My Favorite Beverages"Sheet1.Cells(2, 1).Value = Drinks(1)Sheet1.Cells(3, 1).Value = Drinks(2)Sheet1.Cells(4, 1).Value = Drinks(3)Sheet1.Cells(5, 1).Value = Drinks(4)End Sub
ТУК,
Код |
Действие |
Дим напитки (1 до 4) като струна |
|
Напитки (1) = "Pepsi" |
|
Sheet1.Cells (1, 1) .Value = "Моите любими напитки." |
|
Лист 1. Клетки (2, 1). Стойност = Напитки (1) |
|
Тестване на нашето приложение
Изберете раздела за програмисти и се уверете, че бутонът за режим на проектиране е "изключен". Индикаторът е, че той ще има бял фон, а не цветен (зеленикав) фон. (Вижте изображението по-долу)
Кликнете върху бутона Зареждане на напитки
Ще получите следните резултати
Изтеглете Excel, съдържащ горния код
Изтеглете горния код на Excel
Обобщение
- Масивът е променлива, способна да съхранява повече от една стойност
- Excel VBA поддържа статични и динамични масиви
- Масивите улесняват писането на поддържаем код в сравнение с декларирането на много променливи за данни, които са логически свързани.