Вы можете выделить размер массива, используя ReDim
:
Public newarray() As String
Sub test1()
Dim int1 As Integer
ReDim newarray(4)
int1 = 0
Do
int1 = int1 + 1
newarray(int1) = int1 * 5
Loop Until int1 > 3
End Sub
Это переопределит весь ваш массив. Если вам нужно сохранить содержимое массива и просто изменить размер, вы можете использовать ReDim Preserve newarray(4)
.
Ваш код предполагает, что массивы основаны на 1. Это может быть 0 на основе (устанавливается опцией в VB). Чтобы ваш код работал независимо от этой опции, вы должны использовать LBound
/ UBound
для ограничения вашего счетчика:
int1 = LBound(newarray)
Do
newarray(int1) = int1 * 5
int1 = int1 + 1
Loop Until int1 > UBound(newarray)