在excel vba中将项追加到数组时,下标超出范围

我有一个数组在Excel中的VBA,我想附加3项到arrays的末尾,但我得到一个下标超出范围错误,每当我运行我的代码。

首先,我拆分“rtv”数组,我想追加“类”,“年龄”和“地址到”rtv“数组的末尾,但我收到一个错误。

我的代码如下所示:

rtv = Split(Application.WorksheetFunction.VLookup(Name,Sheets("Properties").Range("B1:C7"), 2, False), ",") rtv(UBound(rtv)) = "Class" rtv(UBound(rtv) + 1) = "Age" rtv(UBound(rtv) + 2) = "Address" For i = LBound(rtv) To UBound(rtv) rtv(i) = Chr(34) & rtv(i) & Chr(34) & ":" & Chr(34) & Chr(34) & ";" Next i 

这就是我如何声明我的数组:

 Dim rtv() As String Dim i As Long 

任何人都知道错误在哪里?

VBA中,数组的大小不能简单地通过添加元素来增加。 数组必须重新编辑。 如果ReDim需要保留内容,则必须使用ReDim Preserve

示例(简化的Application.WorksheetFunction.VLookup(Name,Sheets("Properties").Range("B1:C7"), 2, False)

 Sub test() Dim rtv() As String sVLookupResult = "a,b,c" rtv = Split(sVLookupResult, ",") lrtvLength = UBound(rtv) ReDim Preserve rtv(lrtvLength + 3) rtv(lrtvLength + 1) = "Class" rtv(lrtvLength + 2) = "Age" rtv(lrtvLength + 3) = "Address" For i = LBound(rtv) To UBound(rtv) rtv(i) = Chr(34) & rtv(i) & Chr(34) & ":" & Chr(34) & Chr(34) & ";" Next i MsgBox Join(rtv) End Sub