使用变量访问Excel VBA

时间:2016-11-25 13:44:09

标签: arrays excel vba excel-vba

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

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一切正常。当我尝试像[delete!(df, colname) for df in [df1, df2, df3], colname in [:col2,:col5]]; 这样的事情时,我会遇到错误。

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

2 个答案:

答案 0 :(得分:0)

您只是错误地访问它们。让我给你一些有用的东西的例子。

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

以上说明rCell的1个空格= A(x,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不适合你呢?

答案 1 :(得分:0)

(代表OP发布)

原来这个代码有效。我所做的只是重启Excel!可能是一个错误。