Yog*_*oga 1 excel vba excel-vba
大家好,我收到了一个错误
Run-time error '9':
Subscript out of range
Run Code Online (Sandbox Code Playgroud)
使用以下代码
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
Run Code Online (Sandbox Code Playgroud)
当我决定阵列
Public newarray(4) As string
Run Code Online (Sandbox Code Playgroud)
它工作,但我希望声明一个动态数组.请帮忙.谢谢.
您可以使用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
Run Code Online (Sandbox Code Playgroud)
这将重新定义整个阵列.如果需要保留数组的内容,只需更改大小,即可使用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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7785 次 |
最近记录: |