Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
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
Inhaltsverzeichnis

Aus übegeordneter Schleife springen?

Aus übegeordneter Schleife springen?
06.03.2015 17:34:32
Phil
Hallo Zusammen,
gerade plagt mich folgendes Problem. Ich habe eine sehr komplexe Datenbank mit mehreren Tabellen, in denen ich Daten vergleiche. Nun habe ich eine Prozedur, in der ich insgesamt fünf Schleifen verschachtelt laufen lassen muss (geht leider wirklich nicht anders). Nun die Frage: Wenn in der 5. Schleife ein Wert gefunden und kopiert wurde, soll bitte mit dem Exit For nicht nur aus der 5. Schleife, sondern auch aus der 4. Schleife gesprungen werden. Gibt es für dieses Problem eine von excel vordefinierte Lösung, um aus "höheren" Schleifen zu springen?
Danke + Grüße!
Phil

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus übegeordneter Schleife springen?
06.03.2015 17:53:12
Beverly
Hi Phil,
benutze eine Variable, die du vor dem Verlassen der 5. Schleife belegst und in der 4. Schleife prüfst du jeweils, ob diese Variable belegt ist - wenn ja, dann die 4. verlassen.


AW: Aus übegeordneter Schleife springen?
06.03.2015 17:54:38
Phil
Jau, so hab ich es auch gelöst. Dachte, da gibt es noch eine elegantere Lösung. Danke dennoch! :-)

AW: Aus übegeordneter Schleife springen?
06.03.2015 18:28:21
ChrisL
Hi Phil
Eleganter wäre gar nicht erst 5 Schleifen zu machen :)
Wie wärs mit einer Funktion als Beispiel
Sub Schleife4()
for i = 1 to 10
if Schleife5 then exit for
next i
End Sub

Function Schleife5() As Boolean
for i = 1 to 10
if bedingung then
Schleife5 = True
exit for
end if
next i
End Function

cu
Chris

Anzeige
du behältst vielleicht...
06.03.2015 19:00:39
Oberschlumpf
...einen besseren Überblick,...
Hi Chris,
...wenn du mit Funktionen arbeitest.
Aber schlussendlich wird in deinem Bsp doch nur eine der Schleifen in eben eine Funktion ausgelagert.
In Summe hast du also genau so viele Schleifen, wenn du nicht nur ein Bsp zum Verständnis zeigst, sondern deine Funktionslösungsidee auf den realen Code von Phil übertragen würdest ;-)
Ciao
Thorsten

AW: Aus übegeordneter Schleife springen?
06.03.2015 18:41:45
Daniel
Hi
ja es geht ewas eleganter.
Die Variable kannst du weglassen.
Um zu prüfen, ob eine Schleife vorzeitg abgebrochen wurde, kannst du den Schleifenzähler mit dem Schleifenendwert vergleichen.
Ist der Schleifenzähler kleiner oder gleich dem Schleifenendwert, wurde die Schleife vorzeitig abgebrochen (bei rückwärtslaufenden Schleifen natürlich grösser-gleich)
dh in die 5. Schleife kommt normal deine Abbruchbedingung:
If ... Then Exit For
in den übergeordneten Schleifen musst du dann prüfen, ob die innenliegende Schleife abgebrochen wurde und wenn ja, ebenfalls abbrechen:
mal hier für drei schleifen:
For k = 1 to z
For j = 1 to x
For i = 1 to y
if ... Then Exit For
Next
If i 
im prinzip kannst du auch mit Goto aus der Schleife rausspringen:
For i = 1 To 100
For j = 1 To 100
For k = 1 To 100
If ... Then GoTo SprungMarke
Next
Next
Next
SprungMarke:
aber das gilt im allgemeinen nicht als elegante Lösung.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige