VBA幻影空arrays值
我正在从VBA的Excel范围循环一些数据(只有8个值),但我似乎正在得到一个'幻影'空的数组值在中间。
这是我如何build立数组。 循环的范围导致find2个值,即2个值='rad'。
' arRoPtsXY is a 2D array counter2 = UBound(arRoPtsXY, 2) Dim arSecPtCt() loopCtr = 0 For i = 1 To counter2 rad = Sqr((secCX - arRoPtsXY(1, i)) ^ 2 + (secCY - arRoPtsXY(2, i)) ^ 2) If rad = secR Then ReDim Preserve arSecPtCt(i) arSecPtCt(loopCtr) = i loopCtr = loopCtr + 1 End If Next i
但是当我执行这个:
For a = LBound(arSecPtCt) To UBound(arSecPtCt) Debug.Print arSecPtCt(a) Next a
我得到这个输出:
1 3 'end
请注意,上面有2个空格输出(在3之后,我添加'end
来显示空格),就像数组'space'存在一样,但是它是空的。
如果我做一个debug.print UBound(arSecPtCt)
我得到'3',意思是0,1,2,3占用数组'空格'。
我只想要我的数组是:
1 3
因为只有第一和第三个值='rad'。
如果我在if循环中debug.print i
只输出1和3,没有空格,所以循环似乎工作,但我只是得到这些额外的空白。
希望有人能把我的痛苦摆脱出来。
提前谢谢了。
乔恩
尝试改变:
ReDim Preserve arSecPtCt(i)
至
ReDim Preserve arSecPtCt(loopCtr)