Excel VBA масиви

Excel VBA Array - це не що інше, як змінна, яка може містити один і той же тип даних. Масив - це група змінної, яка може зберігати більше однієї змінної. Ім'я змінної буде однаковим, але може містити різні значення в одній змінній. Масив VBA - це тип змінної, який використовується для зберігання списків даних одного типу.

Якщо у нас є 5 комірок, які містять числа, нам потрібно оголосити 5 змінних, щоб утримувати 5 різних чисел у діапазоні. Але за допомогою масиву ми можемо утримувати 5 різних значень у самій одній змінній.

Як використовувати масиви VBA Excel?

Давайте розберемося, як використовувати Excel VBA масиви та їх типи на деяких прикладах.

Ви можете завантажити цей шаблон VBA масивів Excel тут - шаблон VBA масивів Excel

Приклад №1

Погляньте на приклад нижче. X - змінна, яка містить тип даних цілого числа.

Код:

 Sub Array_Example1 () Dim x As Integer x = 1 End Sub 

Тепер призначте значення 1 у заявленій змінній x.

Вставимо значення 1 у комірку А1.

Код:

 Sub Array_Example1 () Dim x As Integer x = 1 Діапазон ("A1"). Значення = x 
 Кінець Під 

Значення x дорівнює 1, а в діапазоні, значення A1 буде вставлено як значення x, тобто значення x дорівнює 1. Тепер запустіть код за допомогою клавіші F5 або вручну, щоб побачити результати.

У наведеному вище прикладі x містить лише одну змінну, і це все. Але якщо я хочу вставити 5 послідовних чисел за допомогою однієї змінної, мені потрібно використовувати змінну масиву типу, яка може містити багато змінних значень в одній назві змінної.

Приклад №2

Тепер погляньте на приклад нижче. Ім'я змінної - x, а тип даних - LONG. Але, оголошуючи саму змінну, я відкрив дужку і згадав від 1 до 5. Це означає, що змінна x буде містити 5 різних типів значень.

Код:

 Sub Array_Example () Dim x (1 to 5) As long, i As Integer End Sub 

Після цього я призначив значення для кожної змінної. X (1) = 20 означає, що перша змінна повинна дорівнювати значенню 20. X (2) = 25 означає, що друга змінна повинна дорівнювати значенню 25 і так далі.

Код:

 Sub Array_Example () Dim x (1 to 5) As long, i As Integer x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Пізніше я оголосив ще одну змінну під назвою "Я", це другий тип змінної і містить тип даних цілого числа .

На наступному кроці я застосував для циклів FOR, щоб вставити призначені числа до масиву в першому стовпчику. Я встановив значення змінної i до 1 і дав вказівку циклу запуститися від 1 до 5 разів. Коли цикл працює вперше, значення I буде дорівнює 1. CELLS (I, 1). Value = x (i) це означає, що вперше i дорівнює 1, тобто CELLS (1, 1). Value = x (1), у першому рядку першого стовпця (комірка A1) значення буде значенням першого масиву ( x (1) ), тобто 20.

Коли цикл працює вдруге i значення стає 2, тобто CELLS (2, 1). Value = x (2), у другому рядку першого стовпця (A2) значення буде другим масивом ( x (2) ) тобто 25.

Код:

 Sub Array_Example () Dim x (1 to 5) As Long, i As Integer x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Для i = 1 - 5 комірок (i, 1) .Value = x (i) Далі i End Sub 

Так, коли петлі продовжують працювати, значення змінюватимуться. Коли цикл, запущений в третій раз, значення комірки A3 буде 44, значення четвертої циклу, що працює в четвертий раз, значення комірки A4 становитиме 78, коли цикл запускається в остаточний час, або п'яте значення значення комірки A5 буде 96.

Запустивши код за допомогою клавіші F5 або вручну, ми отримаємо результати, як показано нижче.

Типи масивів в Excel

Масиви мають різні типи в VBA. У програмі excel доступно п'ять типів масивів.

  • Статичний масив
  • Динамічний масив
  • Один розмірний масив
  • Двомірний масив
  • Багатовимірний масив

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

У цьому типі масиву довжина масиву заздалегідь визначається заздалегідь і залишається постійною.

Код:

 Sub Static_Example () Dim ArrayType (від 1 до 3) як Integer ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 комірки (1, 1) .Value = ArrayType (1) Cell (1, 2) .Value = ArrayType (2) Осередки (1, 3) .Value = ArrayType (3) Кінцевий підзаголовок 

У наведеному вище коді довжина ArrayType визначається заздалегідь як 1 - 3, а тип даних - Integer.

Запустивши код за допомогою клавіші F5 або вручну, ми отримаємо результати, як показано нижче.

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

У цьому типі масиву довжина масиву заздалегідь не визначається заздалегідь.

Код:

 Sub Dynamic_Example () Dim ArrayType () як варіант ReDim ArrayType (3) ArrayType (1) = "Моє ім'я" ArrayType (2) = "є" ArrayType (3) = "Excel" Осередки (1, 1) .Value = ArrayType (1) Клітини (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

У цьому типі масиву дані є Variant, а довжина тут не визначається. Після оголошення змінної я призначив довжину масиву за допомогою функції ReDim . Цей масив буде вставляти такі значення, як ця комірка A1 = Моє ім'я, комірка B1 = є, комірка C1 = Excel.

Один розмірний масив

У цьому типі масиву визначається довжина, але в одному вимірі вона працює.

Код:

 Sub One_Dimмер () Dim OneDimension (від 1 до 3) як рядок OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Показати ці значення у вікні повідомлення VBA.

Код:

 Sub One_Dim dimension () Dim OneDimension (від 1 до 3) як String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) Кінець Sub 

Запустіть цей код за допомогою клавіші F5 або вручну, і ми отримаємо наступний результат.

Двомірний масив

У цьому типі масиву довжина визначається у двох вимірах і вона працює.

Код:

 Sub Дві_вимірний () Дим Двомірний (1 До 2, 1 До 2) Довгий Дім і Як Цілий Дім j Як Цілий Двомірний (1, 2) = 40 Двомірний (2, 1) = 50 Двомірний (1, 1) = 15 Двомірний (2, 2) = 10 кінцевих підряд 

Тепер збережіть ці значення в комірки нижче коду.

Код:

 Sub Дві_вимірний () Дим Двомірний (1 До 2, 1 До 2) Довгий Дім і Як Цілий Дім j Як Цілий Двомірний (1, 2) = 40 Двомірний (2, 1) = 50 Двомірний (1, 1) = 15 Двомірний (2, 2) = 10 Для i = 1 До 2 Для j = 1 До 2 комірок (i, j) = Двомірність (i, j) Далі j Далі i Кінець Sub 

Це збереже дані, як показано нижче.

Багатовимірний масив

У цьому типі масиву визначається довжина, але в багатовимірному масштабі він працює.

Код:

 Sub Multi_Dim dimension () Dim TwoDimension (1 до 3, 1 to 2) As Long Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 Мультидименсія (3, 1) = 98 Багатовимірність (3, 2) = 54 

Якщо ви подивитесь на наведений вище код, спершу я оголосив масив як 1 - 3, а потім 1 - 2. Це означає, що коли я пишу масив, я можу використовувати лише 1 - 3 числа, але у другому просторі я можу використовувати лише 1 до 2 не 1 до 3.

За допомогою циклу ми можемо вставити значення в комірки. Я використав дві петлі для багатовимірного масиву.

Код:

 Sub Multi_Dim dimension () Dim TwoDimension (1 до 3, 1 to 2) As Long Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 Мультидименсія (3, 1) = 98 Мультидименсія (3, 2) = 54 Для i = 1 До 3 Для j = 1 До 2 комірок (i, j) = MultiDimension (i, j) Далі j Далі i Кінець Sub 

Запустивши код за допомогою клавіші F5 або вручну, ми отримаємо результати, як показано нижче.

Що потрібно пам’ятати

  • Масив буде рахувати значення від нуля, а не від 1.
  • Масив (0, 0) означає перший рядок першого ряду.
  • Цей файл макросів Excel потрібно зберегти як робочу книгу з підтримкою макросу.
  • У разі динамічного масиву нам потрібно призначити значення масиву, використовуючи функцію REDIM у VBA.

Рекомендовані статті

Це було керівництвом до масивів VBA. Тут ми обговорили типи масивів у VBA та використання Excel VBA масивів разом із деякими практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. ЗНАЙТИ функцію в Excel з прикладами
  2. Що таке функція VBA в Excel?
  3. Посібник по об'єкту діапазону VBA
  4. Як використовувати функцію VBA VLOOKUP?

Категорія: