Uft

2016-04-12 11 views
0

içinde döngü döngüsünde yineleme atlamak için iki sayfa dış excel sayfadan, Global olarak adlandırılan sheet1 ve Data olarak adlandırılan sheet2 veriyorum.Uft

Genel sayfa giriş bilgilerini içerir ve Veri sayfası çoklu girişler içerir.

Veri sayfasından iki satırdan daha fazlasına sahibim ve satırı atlamak (pi = 01) ve veri sayfasındaki sonraki satırı çalıştırmak istiyorum.

kodu

: Biz tüm kodu görmüyorum yana

case 51 

if processindicator = 01 then 
ExitActionIteration 
Else 
"statement" 
End If 

ama şimdiki yineleme yerine tüm yineleme atlama olduğunu

yardım bana peşin

cevap

0

bu ve teşekkür çözmek için onu anlatması zor. Ama belki de aşağıdaki örnek aradığınız şey. Temelde, 1'den 100'e kadar gidecek ve sadece 51 numaraya atlar:

Public Sub TestSkippingOfAnIteration() 

Dim i As Long 

For i = 1 To 100 
    If i = 51 Then i = i + 1 
    Debug.Print i 
Next i 

End Sub 

o sorunu çözer olursa haber verin. Aksi halde, lütfen ilgili tüm kodları ayrıntılı bir şekilde yayınlayın ve gönderin.

+0

düşünün 100'dür, 'i 100 ise' gibi ... – trincot

+0

... 'Ardından For 'çıkın. Ama sonra tekrar: neden 'For' koşmak yerine 1'den 100'e ve 99'a kaç olurum? Sonuçta, tüm istisnalar VBA altına kodlanmış ve dinamik değil. – Ralph

0

Wrap bir If açıklamada koşullu kod:

For i = 1 To 10 
    ... 
    If processIndicator <> 1 Then 
     '// do whatever you want here 
    End If 
Next 

ya da (o okunabilirliği ve mantık azaldıkça daha az, tavsiye) bir GoTo deyimi kullanın: istisna test etmek için ise

For i = 1 To 10 
    ... 
    If processIndicator = 1 Then 
     GoTo Skip_Line: 
    Else 
     '// do whatever you want here 
    End If 
    ... 

Skip_Line: 
Next 
+0

İkinci şekilde 'Else' sağlamak için gereksizdir. Hemen bir "Son" ise en azından daha az girintiye yol açacaktır. – trincot

+1

Tek bir satır 'If' ifadesi daha iyi olurdu, ben sadece mantığın bir döngü içinde nasıl gezinebileceğini biraz daha açık hale getirmeye çalıştım. Çalışma kodu olarak kullanılmak üzere tasarlanmamıştır. –