在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