2016-04-12 5 views
0

Ich exportiere zwei Blatt von externen Excel-Blatt, Blatt1 mit dem Namen Global und Sheet2 mit dem Namen Data.Wie überspringe ich eine Iteration in FOR Schleife in

Das globale Blatt enthält Anmeldedaten und das Datenblatt enthält mehrere Eingänge.

Ich habe mehr als zwei Zeilen im Datenblatt und möchte die Zeile überspringen (wenn pi = 01) und die nächste Zeile im Datenblatt ausführen.

Code:

case 51 

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

aber es ist das Überspringen alle Iteration anstelle der aktuellen Iteration

mir helfen, diese und Dank im Voraus zu lösen

Antwort

0

Da wir es nicht den gesamten Code sehen ist schwer zu sagen. Aber vielleicht ist das folgende Beispiel das, wonach Sie suchen. Grundsätzlich wird es von 1 bis 100 geht und nur überspringt die Zahl 51:

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 

Lassen Sie mich wissen, ob das Ihr Problem löst. Ansonsten bitte den gesamten relevanten Code ausarbeiten und posten.

+0

Stellen Sie sich vor, wenn die Ausnahme zu testen ist 100, wie in 'If i = 100 Then' ... – trincot

+0

...' Dann Exit For'. Aber dann nochmal: Warum sollte ich das 'For' von 1 bis 100 und nicht bis 99 laufen lassen? Schließlich sind alle Ausnahmen fest in der VBA-Untergruppe codiert und nicht dynamisch. – Ralph

0

Wickeln Sie den bedingten Code in einer If Aussage:

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

oder (weniger empfohlen, da es die Lesbarkeit und Logik nimmt ab) verwenden, um eine GoTo Anweisung:

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

Skip_Line: 
Next 
+0

In der zweiten Möglichkeit ist es nicht notwendig, "Else" bereitzustellen. Ein sofortiges "Ende If" würde zumindest zu weniger Einrückung führen. – trincot

+1

Eine einzige Zeile 'If' Aussage wäre noch besser, ich habe es gerade so geschrieben, um zu versuchen, die Logik etwas klarer zu machen, wie man innerhalb einer Schleife navigieren kann. Es ist nicht als Arbeitscode gedacht. –