假设我想要一个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
答案 0 :(得分:0)
您的阵列无需Dim
和ReDim
。如果您希望阵列具有静态大小,请使用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)