我在这里使用一些数组代码遇到了很多麻烦 - 如果我运行这个:
Sub ArrayRunner()
Dim PipeBArray() As Variant
Dim i As Integer
PipeBArray = ThisWorkbook.Sheets(1).Range("A1:A6").Value
MsgBox Str(UBound(PipeBArray)) & Str(LBound(PipeBArray))
For i = LBound(PipeBArray) To UBound(PipeBArray)
MsgBox PipeBArray(i)
Next i
MsgBox "Done!"
End Sub
然后我在for循环中的行上得到错误9 - 下标超出范围 - 当我看到变量'i'时它告诉我i的值是1 ...所以这发生在第一个实例上for循环。
有谁能帮我看看我在这里做错了什么?
谢谢大家。
乔
答案 0 :(得分:2)
当您将范围设置为这样的数组时,VBA会自动将其设置为二维数组。所以你需要像这样引用它:
MsgBox PipeBArray(i, 1)
而不是:
MsgBox PipeBArray(i)
我建议this link了解更多信息。
答案 1 :(得分:0)
也想添加
Dim Temp As Variant
Dim Dict As New Dictionary
' fill dictionary here
Temp = Dict.Items
创建一维数组。 我只是与上面提到的麻烦相反。
的问候, 乔