在excel vba中动态设置数组的大小

时间:2014-05-12 09:20:54

标签: excel excel-vba vba

通过VBA代码,我将确定一个数组的大小,比如knownarray()。每次该数组的大小可能不同。根据它的大小,我需要初始化另一个相同大小的数组。我应该怎么做

例如:

knownarray() size = 4  

所以现在我需要创建一个大小为4的数组,名称为newarray()

到目前为止,我所做的工作如下:

ReDim NewArray(KnownArray.Size)

我知道这一定很容易,但作为VBA的新手,我被困住了。有人可以帮帮我吗?

提前感谢

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

另一种方法,特别是如果你想要第一个数组的值,只需要复制现有数组:

Dim knownArray(2 To 4) As String

Dim copyArr() As String
copyArr() = knownArray()

此处copyArr现在是另一个具有相同维度相同值的不同数组。如果你也想要这些值,你只会这样做。如果没有,带有界限的ReDim回答@ [me how]是最好的解决方案。