在微软网站显示下面的代码应该工作:
Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
但是,当我尝试在excel VBA模块中使用它时,我收到了一个complile错误.以下适用于一维数组:
A = Array(1, 2, 3, 4, 5)
但是我还没有找到一种方法来为2D数组做同样的事情.有任何想法吗?
我不确定如何表达这个问题,但我遇到了一个问题,我需要将一组表中的名称列表加载到单独的数组中.
例如,Sheet 1,Column A有10名被装入array1,Sheet 2,Column A必须被加载到14名array2.
我知道这可以硬编码到一个宏来加载它们,但名称列表不是一个固定的长度和害羞的很多代码我想知道这是否可以缩短.
我的想法告诉我这样做的方式如下.
Dim tarray1 As Variant
Dim tarray2 As Variant
Dim tarray3 As Variant
For f = 1 To 3
Sheets("Region " & f).Select
With ActiveSheet
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
tarray& f = ActiveSheet.Range("A2:A" & lastrow)
End With
Next
Run Code Online (Sandbox Code Playgroud)
有问题的实际工作表有10个单独的工作表,从1区到10区读取名称.因此将有10个单独的tarray.这样做是为了报告目的,并将在表格周围来回传递.
但是tarray & f显然无效并且会引发编译错误.
任何人都可以想办法解决这个问题吗?
希望有人能提供帮助.
在我的项目中,我使用锯齿状数组工作很多,即元素也是数组的数组.
直到知道我才设法定义这样的数组:
dim subarray(1 to 3) as Integer
dim MyArray(1 to 5) as Variant
subarray(1) = 40
subarray(2) = 50
subarray(3) = 60
MyArray(1) = subarray
Run Code Online (Sandbox Code Playgroud)
但我想做这样的事情:
dim MyArray(1 to 5)(1 to 3) as Variant/Integer
MyArray(1)(1) = 40
Run Code Online (Sandbox Code Playgroud)
上面的例子没有编译.是否有类似的有效方法直接声明嵌套数组?
编辑:正确的术语是'锯齿状数组'而不是'嵌套数组'.
EDIT2:编辑示例值,以防止索引和值之间的混淆.