在excel vba中动态设置数组的大小
通过VBA代码,我将确定一个数组的大小,比如knownarray。此数组的大小每次可能不同。根据它的大小,我需要初始化另一个相同大小的数组。我应该怎么做 例如:在excel vba中动态设置数组的大小,excel,vba,Excel,Vba,通过VBA代码,我将确定一个数组的大小,比如knownarray。此数组的大小每次可能不同。根据它的大小,我需要初始化另一个相同大小的数组。我应该怎么做 例如: knownarray() size = 4 现在我需要创建一个大小为4的数组,名为newarray 到目前为止,我所做的工作如下: ReDim NewArray(KnownArray.Size) 我知道这一定很容易,但作为VBA的新手,我被卡住了。有人能帮我吗 提前感谢另一种方法,特别是如果需要第一个数组的值,只需复制现有数组:
knownarray() size = 4
现在我需要创建一个大小为4的数组,名为newarray
到目前为止,我所做的工作如下:
ReDim NewArray(KnownArray.Size)
我知道这一定很容易,但作为VBA的新手,我被卡住了。有人能帮我吗
提前感谢另一种方法,特别是如果需要第一个数组的值,只需复制现有数组:
Sub Main()
Dim strArr(2 To 4) As String
strArr(2) = "element1"
strArr(3) = "element2"
ReDim anotherArr(LBound(strArr) To UBound(strArr)) As String
Debug.Print "the size:" = UBound(anotherArr) - LBound(anotherArr)
End Sub
Dim knownArray(2 To 4) As String
Dim copyArr() As String
copyArr() = knownArray()
这里copyArr是另一个不同的数组,具有相同的维度和值。只有当您也需要这些值时,才会这样做。如果不是,那么答案为[me how]的带边界的ReDim是最好的解决方案。你说的大小是指Ubound吗?你真的应该考虑LBoundtoo@chrisneilsen谢谢你的评论,但你能详细说明一下吗?你的意思是像LboundstrArr到UBoundstrArr一样吗?OP中没有说明原始数组是否为默认下限。应该使用ReDim。。。绑定到UBound@chrisneilsen哦,我同意,是的,绝对同意