Microsoft site建议使用以下代码:
Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
但是,当我尝试在excel VBA模块中使用它时,我收到了一个complile错误。
以下内容适用于一维数组:
A = Array(1, 2, 3, 4, 5)
但是,我还没有找到一种对2D阵列执行相同操作的方法。
有任何想法吗?

最佳答案

您还可以使用速写格式,利用Evaluate函数和静态数组。在下面的代码中,设置了varData,其中[]Evaluate函数的简写,而{...}表达式表示静态数组。每行用;分隔,每个字段用,分隔。它可以使您得到与simoco的代码相同的最终结果,但是语法更接近您的原始问题:

Sub ArrayShorthand()

    Dim varData As Variant
    Dim intCounter1 As Integer
    Dim intCounter2 As Integer

    ' set the array
    varData = [{1, 2, 3; 4, 5, 6; 7, 8, 9}]

    ' test
    For intCounter1 = 1 To UBound(varData, 1)
        For intCounter2 = 1 To UBound(varData, 2)
            Debug.Print varData(intCounter1, intCounter2)
        Next intCounter2
    Next intCounter1

End Sub

09-11 21:03