/ / Динамичен масив в Excel VBA

Динамичен масив в Excel VBA

Ако размерът на масива ви се увеличава и не искате да коригирате размера на масива, можете да го използвате Редим ключова дума. Excel VBA след това автоматично променя мащаба на масива.

Добавете някои номера към колона А.

Динамичен масив в Excel VBA

Поставете командния бутон на работния лист и добавете следните кодови редове:

1. Първо, декларираме масива, наречени числа. Също така декларирайте две променливи от тип Integer. Един име на размера и един с име i.

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. Сега ясно да разберете защо това се нарича динамичен масив, добавете число към колона А.

Добави номер

8. Щракнете отново върху командния бутон.

Резултати от динамичния масив

Заключение: Excel VBA автоматично промени размера на този динамичен масив.

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

ReDim numbers(3)
MsgBox numbers(1)

Резултат:

Без запазване

Масивът е празен.

10. Когато искате да запазите данните в съществуващия масив, когато го преобразувате, използвайте запазената ключова дума.

ReDim Preserve numbers(3)
MsgBox numbers(1)

Резултат:

Със запазване

Също така се чете: