ReDim现有的数组与第二维?

我在我的VBA函数中声明了一个具有dynamic大小的数组。 因为我不能ReDim二维或更multidimensional array的第一维,我可以添加第二维到一个数组?

这是我如何dynamic地设置我的数组的大小。

Dim nameArray() As String Dim arrayCount As Long For i = 1 To 100 ReDim Preserve nameArray(1 to arrayCount) nameArray(arrayCount) = "Hello World" arrayCount = arrayCount + 1 Next i 

现在我想添加第二个维度。

 ReDim Preserve nameArray(1 To arrayCount, 1 To 5) 

不起作用。

有没有解决方法?

没有任何内置的方法来做到这一点。 只需创build一个新的二维数组,并将现有的一维数组的内容转移到新数组的第一行。

这是这个function的作用:

 Function AddDimension(arr() As String, newLBound As Long, NewUBound As Long) As String() Dim i As Long Dim arrOut() As String ReDim arrOut(LBound(arr) To UBound(arr), newLBound To NewUBound) For i = LBound(arr) To UBound(arr) arrOut(i, newLBound) = arr(i) Next i AddDimension = arrOut End Function 

用法示例:

 nameArray = AddDimension(nameArray, 1, 5)