Excel VBA масиви: Видове и как да се използват с пример
⚡ Умно обобщение
Масивите в Excel VBA съхраняват група от свързани стойности от един и същ тип данни под едно име, достъпни чрез индекс. Тази страница обяснява статични и динамични масиви, едномерни, двумерни и многомерни масиви, синтаксис на декларации и работен пример за зареждане на напитки.

Какво е VBA масив?
Масивът се дефинира като място в паметта, което може да съхранява повече от една стойност. Всички стойности трябва да са от един и същи тип данни. Да приемем, че искате да съхраните списък с любимите си напитки в една променлива, можете да използвате VBA масив, за да направите това.
Като използвате масив, можете да препращате към свързаните стойности с едно и също име. Можете да използвате индекс или долен индекс, за да ги различите. Индивидуалните стойности се наричат елементи на Excel VBA масива. Те са съседни от индекс 0 до най-високата стойност на индекса.
Този урок предполага, че използвате Microsoft Excel версия 2013. Знанието все още се прилага за други версии на Microsoft Excel също.
Какви са предимствата на масивите?
Преди да напишете код за масиви, е полезно да разберете защо си струва да използвате масиви. По-долу са някои от предимствата, предлагани от функцията за масиви на VBA.
- Групирайте логически свързани данни заедно – да кажем, че искате да съхраните списък с ученици. Можете да използвате единична променлива на масива, която има отделни местоположения за категории ученици, т.е. детска градина, начално, средно, гимназиално училище и т.н.
- Масивите улесняват писането на поддържаем код. За едни и същи логически свързани данни ви позволява да дефинирате една променлива, вместо да дефинирате повече от една променлива.
- По-добра производителност – веднъж дефиниран масив, извличането, сортирането и модифицирането на данни е по-бързо.
Видове масиви във VBA
VBA поддържа два типа масиви, а именно;
- Статичен – Тези типове масиви имат фиксиран предварително определен брой елементи, които могат да се съхраняват. Човек не може да промени размера на типа данни на статичен масив. Те са полезни, когато искате да работите с известни обекти като брой дни в седмицата, пол и т.н.Например: Dim ArrayMonth(12) Като низ
- Динамичен – Тези типове масиви нямат фиксиран предварително определен брой елементи, които могат да се съхраняват. Те са полезни, когато работите с обекти, чиито брой не можете да зададете предварително.Например: Dim ArrayMonth() като вариант
След като разберете кой тип отговаря на вашите данни, следващата стъпка е синтаксисът на декларацията за всеки от тях.
Синтаксис за деклариране на масиви
Статични масиви
Синтаксисът за деклариране СТАТИЧНА масиви е както следва:
Dim arrayName (n) as datatype
ТУК,
| Code | действие |
|---|---|
| Dim arrayName (n) тип данни |
|
Динамични масиви
Синтаксисът за деклариране DYNAMIC масиви е както следва:
Dim arrayName() as datatype ReDim arrayName(4)
ТУК,
| Code | действие |
|---|---|
| Dim arrayName () тип данни |
|
| ReDim arrayName(4) |
|
Размери на масива
Масивът може да бъде едноизмерен, двуизмерен или многоизмерен.
- Едно измерение: В това измерение масивът използва само един индекс. Например, брой хора от всяка възраст.
- Две измерения: В това измерение масивът използва два индекса. Например брой ученици във всеки клас. Изисква се брой паралелки и брой ученици във всеки клас
- Многоизмерност: В това измерение масивът използва повече от два индекса. Например температурите през деня. (30, 40, 20).
Как да използвате Array в Excel VBA
След като разгледахме теорията, можем да приложим масив в реална работна книга. Ще създадем просто приложение. Това приложение попълва Excel лист с данни от променлива тип масив. В този пример с VBA масив ще направим следните неща.
- Създайте нов Microsoft Работна книга на Excel и я запишете като работна книга с активирани макроси на Excel (*.xlsm)
- Добавете команден бутон към работната книга
- Задайте свойствата на името и надписа на командния бутон
- Програмиране на VBA, който попълва листа на Excel
Нека правите това упражнение стъпка по стъпка,
Стъпка 1 – Създайте нова работна книга
- отворено Microsoft Excel
- Запазете новата работна книга като VBA Arrays.xlsm
Стъпка 2 – Добавяне на команден бутон
Забележка: Този раздел предполага, че сте запознати с процеса на създаване на интерфейс в excel. Ако не сте запознати, прочетете урока VBA Excel Form Control & ActiveX Control. Ще ви покаже как да създадете интерфейса
- Добавете команден бутон към листа
- Задайте свойството име на cmdLoadBeverages
- Задайте свойството надпис на Зареждане на напитки
Вашият GUI трябва да бъде както следва
Стъпка 3 – Запазете файла
- Кликнете върху бутона за запазване като
- Изберете Excel Macro-Enabled Workbook (*.xlsm), както е показано на изображението по-долу
Стъпка 4 – Напишете кода
Сега ще напишем кода за нашето приложение
- Щракнете с десния бутон върху бутона Зареждане на напитки и изберете преглед на кода
- Добавете следния код към събитието за кликване на cmdLoadBeverages
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(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
ТУК,
| Code | действие |
|---|---|
| Dim Drinks (1 до 4) като низ |
|
| Напитки(1) = „Пепси“ |
|
| Sheet1.Cells(1, 1).Value = „Любимите ми напитки“ |
|
| Sheet1.Cells(2, 1).Value = Drinks(1) |
|
Тестваме нашето приложение
След като кодът е на мястото си, последната стъпка е да стартирате бутона и да потвърдите, че масивът запълва листа. Изберете раздела за разработчици и се уверете, че бутонът „Режим на проектиране“ е „изключен“. Индикаторът е, че ще има бял фон, а не цветен (зеленикав). (Вижте изображението по-долу)
Кликнете върху бутона Зареждане на напитки
Ще получите следните резултати
Изтеглете Excel, съдържащ горния код
Изтеглете горния Excel файл Code





