我对数组有一个 for 循环。我想要做的是测试循环中的某个条件,如果为真则跳到下一次迭代:
For i = LBound(Schedule, 1) To UBound(Schedule, 1)
If (Schedule(i, 1) < ReferenceDate) Then
PrevCouponIndex = i
Continue '*** THIS LINE DOESN'T COMPILE, nor does "Next"
End If
DF = Application.Run("SomeFunction"....)
PV = PV + (DF * Coupon / CouponFrequency)
Next
我知道我能做到:
If (Schedule(i, 1) < ReferenceDate) Then Continue For
但我希望能够在 PrevCouponIndex 变量中记录 i 的最后一个值。
有任何想法吗?
Thanks
VBA 没有Continue
或任何其他等效关键字立即跳转到下一个循环迭代。我建议明智地使用Goto
作为一种解决方法,特别是如果这只是一个人为的示例并且您的实际代码更复杂:
For i = LBound(Schedule, 1) To UBound(Schedule, 1)
If (Schedule(i, 1) < ReferenceDate) Then
PrevCouponIndex = i
Goto NextIteration
End If
DF = Application.Run("SomeFunction"....)
PV = PV + (DF * Coupon / CouponFrequency)
'....'
'a whole bunch of other code you are not showing us'
'....'
NextIteration:
Next
不过,如果这确实是您的全部代码,那么@Brian 是绝对正确的。只需放一个Else
你的条款If
声明并完成它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)