Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schleife bei wahrer if bedingung abbrechen

Schleife bei wahrer if bedingung abbrechen
07.09.2005 11:44:03
Daniel
Hallo,
ich habe in einer for schleife eine if bedingung die bei erfüllung die schleife abbrechen soll. das ganze sieht beispielsweise so aus:
for i=1 to 999
if z=1 then
next
end if
msgbox "WAS GEHT"
next
beim ausführen sag der compiler aber fehler: next ohne for
wie kann ich die schleife abbrechen?
gruß
Daniel
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife bei wahrer if bedingung abbrechen
07.09.2005 11:52:23
Peter
Servus,
der Fehler wird erzeugt weil du die if Bedingung nicht abschliesst.
Versuchs mal so.
for i=1 to 999
if i=10 then
msgbox "Bedingung erfüllt !"
exit for
end if
next

AW: Schleife bei wahrer if bedingung abbrechen
07.09.2005 12:41:13
Daniel
thx jetzt rennts, aber mein fehler war nicht die fehlende end if sondern dass ich next und nicht exit for als abbruchbefehl verwendet hab...
gruß aus schwaben,
Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Schleife bei wahrer IF-Bedingung abbrechen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine For-Schleife in Excel VBA vorzeitig zu beenden, wenn eine bestimmte IF-Bedingung erfüllt ist, kannst du die Exit For-Anweisung verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (ALT + F11).

  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul").

  3. Füge den folgenden Code ein:

    Sub SchleifeVorzeitigBeenden()
       Dim i As Integer
       For i = 1 To 999
           If i = 10 Then
               MsgBox "Bedingung erfüllt!"
               Exit For
           End If
       Next i
    End Sub
  4. Führe das Makro aus (F5) und beobachte, dass die Schleife bei i = 10 abbricht und die MessageBox angezeigt wird.


Häufige Fehler und Lösungen

Ein häufiger Fehler, den viele Benutzer machen, ist die Verwendung von Next anstelle von Exit For. Wenn du den folgenden Code verwendest:

For i = 1 To 999
    If i = 10 Then
        ' Fehler: next ohne for
    Next
Next i

Hierbei wird ein Kompilierungsfehler angezeigt. Stelle sicher, dass du die End If-Anweisung korrekt abschließt und Exit For verwendest, um die Schleife korrekt abzubrechen.


Alternative Methoden

Wenn du eine Schleife mit einer Bedingung in der For-Schleife abbrechen möchtest, kannst du auch die Do While- oder Do Until-Schleifen verwenden. Hier ein Beispiel mit Do While:

Sub DoWhileBeispiel()
    Dim i As Integer
    i = 1
    Do While i <= 999
        If i = 10 Then
            MsgBox "Bedingung erfüllt!"
            Exit Do
        End If
        i = i + 1
    Loop
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die For-Schleife in verschiedenen Szenarien verwenden kannst:

  1. Zahlen summieren bis zu einer bestimmten Bedingung:

    Sub SummeBisBedingung()
       Dim i As Integer
       Dim summe As Long
       summe = 0
       For i = 1 To 999
           summe = summe + i
           If summe >= 1000 Then
               MsgBox "Summe erreicht: " & summe
               Exit For
           End If
       Next i
    End Sub
  2. Zählvariable zurücksetzen, wenn eine Bedingung erfüllt ist:

    Sub ZaehlenZuruecksetzen()
       Dim i As Integer
       For i = 1 To 20
           If i Mod 5 = 0 Then
               i = 0 ' Zählt zurück
           End If
           Debug.Print i
       Next i
    End Sub

Tipps für Profis

  • Verwende die Do While- oder Do Until-Schleifen, wenn du nicht im Voraus weißt, wie oft die Schleife durchlaufen werden muss.
  • Nutze die Exit For-Anweisung strategisch, um die Leistung deiner VBA-Programme zu optimieren und unnötige Berechnungen zu vermeiden.
  • Achte darauf, die Bedingungen in der If-Bedingung klar zu definieren, um Missverständnisse zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Schleife bei verschiedenen Bedingungen abbrechen?
Du kannst mehrere If-Bedingungen innerhalb der Schleife verwenden und für jede Bedingung Exit For nutzen.

2. Was ist der Unterschied zwischen Exit For und Next?
Exit For beendet die Schleife sofort, während Next den aktuellen Schleifendurchlauf abschließt und zur nächsten Iteration übergeht.

3. Kann ich die Schleife auch in einer Sub-Prozedur beenden?
Ja, du kannst die Exit Sub-Anweisung verwenden, um die gesamte Sub-Prozedur zu beenden, wenn eine bestimmte Bedingung erfüllt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige