数组不一致

时间:2013-10-29 00:56:40

标签: arrays excel vba

我在这里使用一些数组代码遇到了很多麻烦 - 如果我运行这个:

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循环。

有谁能帮我看看我在这里做错了什么?

谢谢大家。

2 个答案:

答案 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

创建一维数组。 我只是与上面提到的麻烦相反。

的问候, 乔