使用变量访问Excel VBA中的3个维数组元素



我想根据变量的值读取数组元素的值:

Public Array1(3, 3) As String
Public Var1 As Integer
Public Var2 As Integer
...
Var1 = 1
Var2 = 1
Array1(1, 1) = "The_string"

我希望MsgBox Array1(Var1, Var2)显示The_string,但事实并非如此。我收到空的消息。如果我尝试MsgBox Array1(1, 1),一切正常。当我尝试.Value之类的事情时,我会发现错误。

我在做什么错?如何根据变量的值访问这些数组条目?

您只是错误地访问它们。让我给您一个有用的事情的费用示例。

 rCell.Offset(0, 1).Value = A(ArCount, 1)

上述rcell = a(x,1)的1个空间。注意我怎么不说.value?

         For i = LBound(MyArray, 1) To UBound(MyArray, 1)
        j = CLng(((UBound(MyArray) - i) * Rnd) + i)
            If i <> j Then
                Temp = MyArray(i)
                MyArray(i) = MyArray(j)
                MyArray(j) = Temp
            End If
    Next i

此代码是数组的基本随机排序。该状态的变量形式的数组声明和分配的好示例。

A(count, 5) = arrResults(z, 5)

这个

很难描述上下文。只是另一个例子。

BlockEnd = GradCFArray(j + 1, k)

另一个例子。

我想您的问题是访问数组内容。数组本身不是"值",但它具有值。那也许是为什么.value不适合您?

(代表OP发布)

事实证明此代码有效。我所做的只是重新启动Excel!可能是一个错误。

最新更新