作者:Jerl | 来源:互联网 | 2023-05-20 19:02
我在我的VBA函数中声明了一个具有动态大小的数组.由于我不能ReDim二维或更多维数组的第一个维度,我可以在集合数组中添加第二个维度吗?
这就是我动态设置数组大小的方法.
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)
不起作用.
有解决方法吗?
1> Jean-Françoi..:
没有任何内置方法可以做到这一点.只需创建一个新的二维数组,并将现有的一维数组的内容传输到该新数组的第一行.
这就是这个函数的作用:
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)