Excel VBA масиви: какво е, как да използвате и видове масиви във VBA

Какво е VBA масив?

Масивът се дефинира като място в паметта, което може да съхранява повече от една стойност. Всички стойности трябва да са от един и същи тип данни. Да приемем, че искате да съхраните списък с любимите си напитки в една променлива, можете да използвате VBA масив, за да направите това.

Като използвате масив, можете да препращате към свързаните стойности с едно и също име. Можете да използвате индекс или долен индекс, за да ги различите. Индивидуалните стойности се наричат ​​елементи на Excel VBA масива. Те са съседни от индекс 0 до най-високата стойност на индекса.

Този урок предполага, че използвате Microsoft Excel версия 2013. Знанието все още се прилага за други версии на Microsoft Excel също.

Какви са предимствата на масивите?

По-долу са някои от предимствата, предлагани от функцията за масив на VBA

  1. Групирайте логически свързани данни заедно – да кажем, че искате да съхраните списък с ученици. Можете да използвате единична променлива на масива, която има отделни местоположения за категории ученици, т.е. детска градина, начално, средно, гимназиално училище и т.н.
  2. Масивите улесняват писането на поддържаем код. За едни и същи логически свързани данни ви позволява да дефинирате една променлива, вместо да дефинирате повече от една променлива.
  3. По-добра производителност – веднъж дефиниран масив, извличането, сортирането и модифицирането на данни е по-бързо.

Видове масиви във VBA

VBA поддържа два типа масиви, а именно;

  • Статичен – Тези типове масиви имат фиксиран предварително определен брой елементи, които могат да се съхраняват. Човек не може да промени размера на типа данни на статичен масив. Те са полезни, когато искате да работите с известни обекти като брой дни в седмицата, пол и т.н.Например: Dim ArrayMonth(12) Като низ
  • Динамичен – Тези типове масиви нямат фиксиран предварително определен брой елементи, които могат да се съхраняват. Те са полезни, когато работите с обекти, чиито брой не можете да зададете предварително.Например: Dim ArrayMonth() като вариант

Синтаксис за деклариране на масиви

Статични масиви

Синтаксисът за деклариране СТАТИЧНА масиви е както следва:

Dim arrayName (n) as datatype

ТУК,

код действие
Dim arrayName (n) тип данни
  1. Той декларира променлива масив, наречена arrayName с размер n и тип данни. Размерът се отнася до броя на елементите, които масивът може да съхранява.

Динамични масиви

Синтаксисът за деклариране DYNAMIC масиви е както следва:

Dim arrayName() as datatype
ReDim arrayName(4)

ТУК,

код действие
Dim arrayName () тип данни
  1. Той декларира масивна променлива, наречена arrayName, без да указва броя на елементите
ReDim arrayName(4)
  1. Той определя размера на масива, след като масивът е дефиниран.

Размери на масива

Масивът може да бъде едноизмерен, двуизмерен или многоизмерен.

  • Едно измерение: В това измерение масивът използва само един индекс. Например, брой хора от всяка възраст.
  • Две измерения: В това измерение масивът използва два индекса. Например брой ученици във всеки клас. Изисква се брой паралелки и брой ученици във всеки клас
  • Многоизмерност: В това измерение масивът използва повече от два индекса. Например температурите през деня. (30, 40, 20).

Как да използвате Array в Excel VBA

Ще създадем просто приложение. Това приложение попълва Excel лист с данни от масивна променлива. В този пример за VBA масив ще направим следните неща.

  • Създайте нов Microsoft Работна книга на Excel и я запишете като работна книга с активирани макроси на Excel (*.xlsm)
  • Добавете команден бутон към работната книга
  • Задайте свойствата на името и надписа на командния бутон
  • Програмиране на VBA, който попълва листа на Excel

Нека правите това упражнение стъпка по стъпка,

Стъпка 1 – Създайте нова работна книга

  1. отворено Microsoft Excel
  2. Запазете новата работна книга като VBA Arrays.xlsm

Стъпка 2 – Добавяне на команден бутон

Забележка: Този раздел предполага, че сте запознати с процеса на създаване на интерфейс в excel. Ако не сте запознати, прочетете урока VBA Excel Form Control & ActiveX Control. Ще ви покаже как да създадете интерфейса

  1. Добавете команден бутон към листа

Използвайте масив в Excel VBA

  1. Задайте свойството име на cmdLoadBeverages
  2. Задайте свойството надпис на Зареждане на напитки

Вашият GUI трябва да бъде както следва

Използвайте масив в Excel VBA

Стъпка 3 – Запазете файла

  1. Кликнете върху бутона за запазване като
  2. Изберете Excel Macro-Enabled Workbook (*.xlsm), както е показано на изображението по-долу

Използвайте масив в Excel VBA

Стъпка 4 – Напишете кода

Сега ще напишем кода за нашето приложение

  1. Щракнете с десния бутон върху бутона Зареждане на напитки и изберете преглед на кода
  2. Добавете следния код към събитието за кликване на 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

ТУК,

код действие
Dim Drinks (1 до 4) като низ
  • Той декларира масивна променлива, наречена Drinks. Индексът на първия масив е 1, а индексът на последния масив е 4.
Напитки(1) = „Пепси“
  • Присвоява стойността Pepsi на първия елемент от масива. Другият подобен код прави същото за останалите елементи в масива.
Sheet1.Cells(1, 1).Value = „Моите любими напитки.“
  • Записва стойността My Favorite Beverages в адрес на клетка A1. Sheet1 прави препратка към листа, а Cells(1,1) прави препратка към ред номер 1 и колона 1 (B)
Sheet1.Cells(2, 1).Value = Drinks(1)
  • Записва стойността на елемента от масива с индекс 1 в ред номер две от колона 1

Тестваме нашето приложение

Изберете раздела за програмисти и се уверете, че бутонът за режим на проектиране е „изключен“. Индикаторът е, че ще има бял фон, а не цветен (зеленикав) фон. (Вижте изображението по-долу)

Тестване на приложение в Excel VBA

Кликнете върху бутона Зареждане на напитки

Ще получите следните резултати

Тестване на приложение в Excel VBA

Изтеглете Excel, съдържащ горния код

Изтеглете горния код на Excel

Oбобщение

  1. Масивът е променлива, способна да съхранява повече от една стойност
  2. Excel vba поддържа статични и динамични масиви
  3. Масивите улесняват писането на поддържаем код в сравнение с декларирането на много променливи за данни, които са логически свързани.