Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

verschachtelte Schleifen

Forumthread: verschachtelte Schleifen

verschachtelte Schleifen
18.10.2002 21:09:20
sebastian lindstaedt
Hallo liebes Forum,

ich habe ein an sich sehr simples Programmfragment, welches aber
für mich völlig unsinnige Ergebnisse liefert. Es handelt sich, wie man auf den ersten Blick erkennt, um zwei geschachtelte While-Schleifen. An sich sollte ja als Ergebnis der Rechnung
4 * 14 = 96 herauskommen, allerdings erhalte ich 5 ?!
Durch die Messageboxen kann man auch beobachten das die innere Schleife nur einmal aufgerufen und ausgeführt wird. Dannach dreht bloß noch die äußere Schleife ihre Runden.
Wer mir dieses für mich unverständliches Verhalten erklären kann, melde sich bitte zu Wort.
__________________________________
Public Sub test()
erg = 0
outer_counter = 0
inner_counter = 0

Do While outer_counter <= 14
MsgBox ("outer_counter")
MsgBox (outer_counter)

Do While inner_counter <= 4
MsgBox ("inner_counter")
MsgBox (inner_counter)
erg = erg + 1
inner_counter = inner_counter + 1
Loop

outer_counter = outer_counter + 1

Loop
MsgBox (erg)
End Sub
_________________________________________-


Vielen Dank
Sebastian Lindstaedt

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: verschachtelte Schleifen
18.10.2002 21:17:23
Hajo_Zi
Hallo Sebastian

96 bekomme ich nicht raus, aber die innere Schleife wird jetzt mehrml durchlaufe

Gruß Hajo

Re: verschachtelte Schleifen
18.10.2002 21:21:36
sebastian lindstaedt
vielen Dank Hajo,

jetzt funktioniert es, hat wohl an der nichtvorhandenen
Variablen Deklaration gelegen < sich am Kopf kratz> trotzdem
etwas merkwürdig :-)



Anzeige
Re: verschachtelte Schleifen
18.10.2002 21:23:53
sebastian lindstaedt
man bin ich blöd, es liegt natürlich daran das der
inner_counter nicht auf 0 gesetzt wurde, naja is schon spät und
war ein harter Tag :-)

Vielen Dank nochmal an Hajo

Re: verschachtelte Schleifen
18.10.2002 21:24:06
Hajo_Zi
Hallo sebastian

daran nicht, ich habe nur eingestellt bei mir das alle Variablen definiert sein müßen und dies stelle ich auch für Testcode ab.

die entscheidene Veränderung steht nach dem ersten Loop
inner_counter = 0

Gruß Hajo

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Verschachtelte Schleifen in VBA verstehen


Schritt-für-Schritt-Anleitung

Um mit verschachtelten Schleifen in VBA zu arbeiten, folge diesen Schritten:

  1. Variablen deklarieren: Stelle sicher, dass alle Variablen, die du verwendest, deklariert sind. Dies hilft, unerwartete Ergebnisse zu vermeiden.

    Dim outer_counter As Integer
    Dim inner_counter As Integer
    Dim erg As Integer
  2. Äußere Schleife einrichten: Starte eine äußere Schleife, die für eine bestimmte Anzahl von Durchläufen sorgt. Beispiel:

    Do While outer_counter <= 14
       ' Code für äußere Schleife hier
    Loop
  3. Innere Schleife hinzufügen: Füge eine innere Schleife hinzu, die innerhalb der äußeren Schleife ausgeführt wird. Stelle sicher, dass der Zähler (inner_counter) nach jedem Durchlauf zurückgesetzt wird.

    inner_counter = 0  ' Setze inner_counter zurück
    Do While inner_counter <= 4
       erg = erg + 1
       inner_counter = inner_counter + 1
    Loop
  4. Ergebnisse ausgeben: Verwende MsgBox, um die Ergebnisse nach der Berechnung anzuzeigen.

    MsgBox (erg)

Häufige Fehler und Lösungen

  • Fehler: Innere Schleife wird nicht korrekt durchlaufen.

    • Lösung: Stelle sicher, dass inner_counter vor der inneren Schleife auf 0 gesetzt wird.
  • Fehler: Unerwartete Ergebnisse.

    • Lösung: Überprüfe, ob alle Variablen korrekt deklariert sind, da dies zu Verwirrung führen kann.

Alternative Methoden

Eine alternative Methode zur Verwendung von verschachtelten Schleifen ist die For-Schleife. Hier ist ein Beispiel, wie du For-Schleifen anstelle von While-Schleifen verwenden kannst:

For outer_counter = 0 To 14
    For inner_counter = 0 To 4
        erg = erg + 1
    Next inner_counter
Next outer_counter
MsgBox (erg)

Praktische Beispiele

Ein einfaches Beispiel für verschachtelte Schleifen in VBA:

Public Sub BeispielVerschachtelteSchleifen()
    Dim erg As Integer
    Dim outer_counter As Integer
    Dim inner_counter As Integer

    erg = 0

    For outer_counter = 0 To 14
        For inner_counter = 0 To 4
            erg = erg + 1
        Next inner_counter
    Next outer_counter

    MsgBox ("Das Ergebnis ist: " & erg)
End Sub

Tipps für Profis

  • Verwende die Option Explicit: Setze am Anfang deiner Module Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden, die durch nicht deklarierte Variablen entstehen können.

  • Debugging-Tools nutzen: Verwende das Debugging-Tool in VBA, um die Werte der Variablen während der Ausführung zu überprüfen. Das kann helfen, Probleme schneller zu identifizieren.


FAQ: Häufige Fragen

1. Warum funktionieren meine verschachtelten Schleifen nicht wie erwartet?
Es könnte daran liegen, dass du eine Variable nicht korrekt zurücksetzt oder nicht deklariert hast. Stelle sicher, dass alle Zähler vor den Schleifen auf den richtigen Wert gesetzt werden.

2. Wie kann ich die Anzahl der Durchläufe einer Schleife anpassen?
Ändere einfach die Bedingung in den Schleifen. Zum Beispiel kannst du For outer_counter = 0 To 10 verwenden, um die Anzahl der Wiederholungen zu reduzieren.

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