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

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • Khan Academy

    Khan Academy

    17 Kasım 2006