SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BiGSH0TROB

    BiGSH0TROB

    7 NİSAN 2011
  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011