В VBA массивы инициализируются с фиксированной длиной. Например, массив длины 1 будет иметь только индекс Array(0)
и никаких других. Если вы хотите увеличить размер массива (без уничтожения текущего содержимого массива), вам нужно использовать ReDim Preserve Arry(new_length)
. Поэтому, если вы ReDim Preserve Arry(10)
, ваш массив теперь готов для 10 элементов, и если у вас уже есть какие-либо элементы в массиве, они сохраняются.
Существует два способа инициализации массива.
1)
Dim myArry(0 to 1) as String
Это массив с двумя пустыми элементами, готовыми принять строку.
2)
Dim myArry as Variant
myArry = Array("", "")
Это массив с двумя «пустыми» элементами, готовыми принять строку.
Чтобы изменить длину:
For i = 1 to 10
ReDim Preserve myArry(i)
myArry(i) = 'whatever
Next i