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

  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013
  • PlugResearch

    PlugResearch

    22 Mart 2006