我正在尝试更改动态数组。 最初创建一个空数组,然后在每次需要向数组中添加项目之前添加1。
Dim PegSubTot()
for i = 1 to end
If value found then
ReDim Preserve PegSubTot(Ubound(PegSubTot) + 1)
PegSubTot(i) = value
endif
next
答案 0 :(得分:0)
您需要先设置数组大小,然后才能更改它:
Dim PegSubTot ' declare as variable
for i = 1 to end ' presuming end is set somewhere?
If value found then
If IsArray(PegSubTot) Then ' check if it's an array
ReDim Preserve PegSubTot(Ubound(PegSubTot) + 1) ' If it is, extend array by 1
Else
ReDim PegSubTot(0) ' If it's not redim as a one element array
End If
PegSubTot(UBound(PegSubTot)) = value ' Set highest element of array to value
end if
next
第一次遍历时,变量不是数组,因此将其设置为一个元素数组(您无需保留,因为它是找到的第一个值)。在随后的每个循环中,它都是一个数组,因此每次都会扩展一个元素,并且该值始终放在该数组的ubound
元素中。
让我知道是否需要进一步澄清。