Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
388to392
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ohne Goto aus Schleifen aussteigen

Ohne Goto aus Schleifen aussteigen
29.02.2004 16:40:23
Franz W.
Hallo Fachleute,
wie kann man ohne Sprungmarke aus mehreren Schleifen rauskommen?
Beispiel: ich suche nach einem Datum, dazu sind zwei Schleifen nötig. Sobald das erste den Bedingungen entsprechende Datum gefunden ist müssen BEIDE Schleifen verlassen werden, damit nicht mehr weitergesucht wird. Mit "Exit For" komme ich aber nur aus der inneren Schleife raus! Also "Goto weiter"...
Da es aber hier immer heißt, dass "Goto" zu vermeiden ist, hab ich's jetzt mal so konstruiert: eine zusätzliche If-Abfrage um aus der äußeren Schleife rauszukommen:

Sub Test
UrlEndDat = 0
For mm = columAnfDat To clTotal Step clJan
For tt = 3 To 33
If Cells(tt, mm + 10) = "" And Cells(tt - 1, mm + 10) <> "" Then
If Cells(tt, mm) > UrlAnfDat Then
UrlEndDat = Cells(tt - 1, mm)
Exit For
End If
End If
Next
If UrlEndDat <> 0 Then
Exit For
End If
Next
End Sub

Ist das schon der Weisheit letzter Schluss? Oder MACHT MAN(!) das anders...??
Vielen Dank im Voraus und Grüße
Franz

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Exit Sub ,... und du bist draus :-)) o.T.
29.02.2004 16:42:16
Ramses
...
Sorry, nur Teilcode
29.02.2004 16:44:09
Franz W.
Hallo Rainer,
tut mir leid, hab wieder mal was unterschlagen: das ganze Makro geht noch weiter! Sorry...
Zerknirscht
Franz
AW: Sorry, nur Teilcode
29.02.2004 16:49:00
Nepumuk
Hallo Franz,
und warum packst du den restlichen Code nicht in die Schleife?
Gruß
Nepumuk
Das kann ICH nicht ;-))
29.02.2004 16:57:07
Franz W.
Hallo Nepumuk, hallo Rainer,
ich seh schon, ich hätt's wohl wirklich genauer schreiben sollen. Aber ich war so auf die eine Frage fixiert, dass ich an den Rest leider nicht gedacht habe, tut mir leid!
Bei kürzerem Code habe ich das auch schon so gemacht, wie du vorschlägst, Nepumuk. Aber in diesem Fall sitzt diese Doppelschleife innerhalb einer weiteren Doppelschleife, da wird allerlei gesucht und zusammengesetzt. Und danach werden noch weitere Daten eingelesen usw. Und ICH bin da nicht in der Lage, das enger zu verschachteln.
Will euch aber auch nicht weiter binden mit meiner Frage, hab ja ne Lösung, mit der ich auch leben kann. Meine Frage war eher theroretischer Natur, zum Lernen, wie MAN das halt so macht. Ob's da vielleicht eine mir noch unbekannte Anweisung für solche Fälle gegeben hätte oder so....
Also vielen Dank Euch beiden und beste Grüße
Frnaz
Anzeige
Gerade noch ... :-)
29.02.2004 16:50:51
Ramses
Hallo Franz
... habe ich mir schon fast gedacht, dass dies etwas zu einfach gewesen wäre:-)
Bau dir doch ein
Public Check As Boolean
und weiss dieser True zu, wenn die innere Schleife fertig ist. in der äusseren SChleife kannst du dann unmittelbar nach dem "Next i" den Status abfragen
If Check = True Then
Check = False
Exit For
End If
Damit kannst du dann auch die äussere Schleife abbrechen.
Gruss Rainer
Ja! Da ist ne Lösung!
29.02.2004 16:59:39
Franz W.
Hallo Rainer,
das ist gut! Das ist eine gute Idee!! Vielen Dank dafür!!
Beste Grüße
Franz
Merci :-)) Geschlossen o.T.
29.02.2004 17:01:01
Ramses
...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige