30 Aralık 2011, Cuma
Şartlı döngü için bir atlanılması VBA - yineleme
Bir dizi üzerinde bir döngü var. Yapmak istediğim şey döngü belirli bir koşul için test ve eğer doğruysa bir sonraki yineleme geçin
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
Yapabileceğimi Biliyorum:
If (Schedule(i, 1) < ReferenceDate) Then Continue For
ama PrevCouponİndex değişkeninin son değeri kaydetmek mümkün olmak istiyorum.
Herhangi bir fikir?
Teşekkürler
CEVAP
30 Aralık 2011, Cuma
VBA Continue
veya benzeri anahtar kelime hemen sonraki döngü tekrarında atlamak için yok. Özellikle bu yapmacık bir örnek ise sadece geçici bir çözüm olarak Goto
akıllıca kullanmak öneriyoruz ve gerçek kodunuzu daha karmaşık
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
Eğer bu gerçekten senin tüm kod ise, olsa da, @Brian kesinlikle doğrudur. Sadece If
beyanı Else
Bir madde koy ve bitsin.
Bunu Paylaş:
döngü numaralama üzerinde yineleme içi...
Nasıl bir foreach döngü içinde ilk ve ...
Yineleme tüm dosyaları bir dizin için ...
Bir şekilde yineleme-sayaç Java'l...
Bir şekilde döngü için en N eleman ara...