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

Съдържание:

Anonim

Какво представлява VBA Array?

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

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

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

В този урок за програмиране на VBA ще научите -

  • Какви са предимствата на масивите?
  • Видове масиви във VBA
  • Как да използвам Array в Excel VBA
  • Тестване на нашето приложение

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

Следват някои от предимствата, предлагани от функцията за масив 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 datatypeReDim arrayName(4)

ТУК,

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

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

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

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

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

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

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

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

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

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

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

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

  1. Добавете команден бутон към листа
  1. Задайте свойството name на cmdLoadBeverage
  2. Задайте свойството на надписа на Зареждане на напитки

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

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

  1. Щракнете върху бутона запази като
  2. Изберете Работна книга с активиран макрос на Excel (* .xlsm), както е показано на изображението по-долу

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

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

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

  • Той декларира масивна променлива, наречена Drinks. Първият индекс на масива е 1, а последният индекс на масива е 4.

Напитки (1) = "Pepsi"

  • Присвоява стойността Pepsi на първия елемент на масива. Другият подобен код прави същото за останалите елементи в масива.

Sheet1.Cells (1, 1) .Value = "Моите любими напитки."

  • Записва стойността Моите любими напитки в адрес на клетка А1. Лист1 прави препратка към листа, а клетки (1,1) се позовава на ред номер 1 и колона 1 (Б)

Лист 1. Клетки (2, 1). Стойност = Напитки (1)

  • Записва стойността на елемента масив с индекс 1 в ред номер две на колона 1

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

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

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

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

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

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

Обобщение

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