数组数组:你能直接ReDim内部数组吗?

时间:2015-08-27 17:39:15

标签: vba

假设我想要一个10元素数组,第一个元素是一个2元素数组。这是我想做的,但它会导致编译错误:

Dim a As Variant: ReDim a(9)
ReDim a(0)(2)

这有效,但它会复制,如果可能的话我想直接进行:

Dim a As Variant: ReDim a(9)
Dim b As Variant: ReDim b(2)
a(0) = b

1 个答案:

答案 0 :(得分:0)

您的阵列无需DimReDim。如果您希望阵列具有静态大小,请使用Dim

Dim a(9)

要使第一个元素成为空的双元素子数组,您可以使用Array()函数并为元素指定初始值Empty

a(0) = Array(Empty, Empty)

试验:

Debug.Print IsEmpty(a(0))        ' False (holds sub-array)
Debug.Print IsEmpty(a(4))        ' True (uninitialized main element)
Debug.Print IsEmpty(a(0)(0))     ' True (uninitialized subarray element)