/ / Динамічний масив у Excel VBA

Динамічний масив у Excel VBA

Якщо розмір вашого масиву збільшується, і ви не хочете виправити розмір масиву, ви можете використовувати ReDim ключове слово. Excel VBA потім автоматично змінює розмір масиву.

Додайте деякі номери до стовпчика A.

Динамічний масив у Excel VBA

Помістіть на вашій робочій клавіші команду та додайте наступні кодові рядки:

1. По-перше, ми оголошуємо масив з назвою номера. Також оголошуйте дві змінні типу Integer. Один іменований розмір і один з них названий я.

Dim numbers() As Integer, size As Integer, i As Integer

Примітка. Масив ще не має розміру. Числа, розмір і я випадково вибрали тут, ви можете використовувати будь-які імена. Не забудьте вказати ці назви в решті частини вашого коду.

2. Далі ми визначаємо розмір масиву та зберігаємо його у змінному розмірі. Ви можете скористатись робочою таблицею CountA для цього. Додайте наступну кодову лінію:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. Тепер ми знаємо розмір масиву, і ми можемо перепрограмувати його. Додайте наступну кодову лінію:

ReDim numbers(size)

4. Далі ми ініціалізуємо кожен елемент масиву. Ми використовуємо цикл.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. Ми показуємо останній елемент масиву за допомогою MsgBox.

MsgBox numbers(size)

6. Закрийте редактор Visual Basic і натисніть кнопку команди на аркуші.

Результат:

Останній елемент масиву

7. Тепер, щоб чітко зрозуміти, чому це називається динамічним масивом, додайте число до стовпчика A.

Додати номер

8. Ще раз натисніть кнопку команди.

Результат динамічного масиву

Висновок: Excel VBA автоматично змінив розмір цього динамічного масиву.

9. Коли ви використовуєте ключове слово ReDim, ви стираєте будь-які існуючі дані, що в даний момент зберігаються в масиві. Наприклад, додати наступні кодові рядки до раніше створеного коду:

ReDim numbers(3)
MsgBox numbers(1)

Результат:

Без збереження

Масив порожній.

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

ReDim Preserve numbers(3)
MsgBox numbers(1)

Результат:

З заповідником

Також читайте: