大家好我收到错误
Run-time error '9':
Subscript out of range
使用以下代码
Public newarray() As String
Sub test1()
Dim int1 As Integer
int1 = 0
Do
int1 = int1 + 1
newarray(int1) = int1 * 5
Loop Until int1 > 3
End Sub
当我判断数组时
Public newarray(4) As string
它可以工作,但我希望声明一个动态数组。请帮忙。谢谢。
答案 0 :(得分:8)
您可以使用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)