是否可以使用Array()创建二维数组?

时间:2014-12-13 18:40:49

标签: vba

创建一维数组非常简单:

Dim A As Variant
A = Array(10,20,30)

是否可以使用Array()创建二维数组?还有其他方法吗?

3 个答案:

答案 0 :(得分:6)

我知道我之前曾在某个地方见过这个,但不得不搜索一下:

Sub test()
Dim A As Variant
A = [{1,2,3;4,5,6;7,8,9}]
Debug.Print A(2, 2)
End Sub

答案 1 :(得分:2)

您可以使用Array()函数语法创建数组数组:

  x = Array(Array(0, 1, 2, 3, 4), Array(100, 101), Array(200, 201, 202))
  debug.print x(2)(1)
  201

这实际上不是一个二维数组。这种技术在其他语言中使用很多。

答案 2 :(得分:1)

我认为这是不可能的。使用Array function您只能指定值列表,而不是dimemsions。

数组函数语法

  

阵列(arglist中)

所需的arglist参数是逗号分隔的值列表,它们分配给Variant中包含的数组元素。

您可以影响下限。使用 Option Base 1 ,然后Array()函数返回下限 1 的数组。仅当Array()函数符合类型库名称时,例如VBA.Array()然后Option Base不会影响Array()函数返回的数组的下限。

要创建2D数组,只需指定尺寸,例如像这样

Dim multiA(1 To 2, 1 To 2) As String

或者像这样使用ReDim

Dim multiA As Variant
ReDim multiA(1 To 2, 1 To 2)