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