arrays不一致

我在这里有一些数组代码很麻烦 – 如果我运行这个:

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 

然后我得到错误9 – 下标超出范围在for循环的行 – 当我看着variables'我'它告诉我的值是一…所以这发生在for循环的第一个实例。

任何人都可以帮我看看我在这里做错了吗?

感谢大家。

当你将一个范围设置为这样的数组时,VBA会自动将其设置为一个二维数组。 所以你需要像这样引用它:

 MsgBox PipeBArray(i, 1) 

而不是:

 MsgBox PipeBArray(i) 

我会推荐这个链接的更多信息。

也想补充一点

 Dim Temp As Variant Dim Dict As New Dictionary ' fill dictionary here Temp = Dict.Items 

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

问候,乔