基于范围对象创建数组

时间:2018-03-26 18:06:56

标签: arrays excel vba

我想知道是否可以将Excel范围对象加载到数组中。假设我们有一张Excel表格,在A5到A7中有以下数值,1到3(即A5中的一个,A7中的2和A7中的3)。我使用以下代码:

Public Sub Test()
    Dim Test As Range
    Set Test = Worksheets("Sheet1").Range("A5:A7")

    Dim arrayMe As Variant
    arrayMe = Test

    Dim i As Integer
    For i = 1 To 3
        MsgBox (arrayMe(i))
    Next i
End Sub

如果我运行代码,我将获得索引超出绑定的异常。进一步来说, 运行时错误' 9':下标超出范围。有人可以向我解释这段代码有什么问题吗?

由于

1 个答案:

答案 0 :(得分:3)

这是因为直接分配值时的垂直数组,即使是一列,也是一个二维数组。

enter image description here

所以你需要在引用数组时添加第二个维度:

MsgBox arrayMe(i,1)