VBA позволяет определять динамически изменяемые размеры массивов:
Dim s() As String
For i = 0 To ... 'some end condition
Redim Preserve s(i)
s(i) = 'fill with some value
Next
Это довольно подвержено ошибкам.Существуют другие коллекции с самоизменяющимся размером, например VBA Collection
:
Dim col As New Collection
For i = 0 To ... 'some end condition
s.Add 'fill with some value
Next
или Scripting.Dictionary
(со ссылкой на Microsoft Scripting Runtime ):
Dim dict As New Scripting.Dictionary
For i = 0 To ... 'some end condition
s.Add i, 'fill with some value
Next
или ArrayList
(со ссылкой на mscorlib ):
Dim al As New ArrayList
For i = 0 To ... 'some end condition
al.Add 'fill with some value
Next
Какие практические преимущества 1 существуют при ручном управлении размероммассива?
1.Предположительно, это будет иметь значение во встроенном программировании или в каком-то игровом движке, который нуждается в высокой производительности;но если вы используете VBA для этой цели, то вы заслуживаете того, что получаете.