VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: For Each...Next-Anweisung

Wiederholt eine Gruppe von Anweisungen für jedes Element in einem Datenfeld oder einer Auflistung.

Syntax

For Each Element In Gruppe
[Anweisungen]
[Exit For]
[Anweisungen]

Next [Element]

Die Syntax für die For...Each...Next-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
Element Erforderlich. Variable zum Durchlauf durch die Elemente der Auflistung oder des Datenfeldes. Bei Auflistungen ist für Element nur eine Variable vom Typ Variant, eine allgemeine Objektvariable oder eine beliebige spezielle Objektvariable zulässig. Bei Datenfeldern ist für Element nur eine Variable vom Typ Variant zulässig.
Gruppe Erforderlich. Name einer Objektauflistung oder eines Datenfeldes (außer Datenfeldern mit benutzerdefinierten Typen).
Anweisungen Optional. Eine oder mehrere Anweisungen, die für jedes Element in Gruppe ausgeführt werden.

Bemerkungen

Das Innere des For…Each-Blocks wird ausgeführt, wenn sich mindestens ein Element in Gruppe befindet. Nachdem mit der Ausführung der Schleife begonnen wurde, werden alle Anweisungen in der Schleife für das erste Element in Gruppe ausgeführt. Enthält Gruppe mehrere Elemente, so werden die Anweisungen in der Schleife für jedes Element wiederholt. Wenn alle Elemente in Gruppe abgearbeitet, verläßt das Programm die Schleife und setzt die Ausführung mit der Anweisung fort, die auf die Next-Anweisung folgt.

Innerhalb einer Schleife kann eine beliebige Anzahl von Exit For-Anweisungen an beliebiger Stelle als alternative Möglichkeit zum Verlassen der Schleife verwendet werden. Exit For wird oft in Zusammenhang mit der Auswertung einer Bedingung (zum Beispiel If...Then) eingesetzt und überträgt die Steuerung an die unmittelbar auf Next folgende Anweisung.

Sie können For…Each...Next-Schleifen verschachteln, indem Sie eine For…Each...Next-Schleife innerhalb einer anderen verwenden. Element muß jedoch für jede Schleife eindeutig sein.

Anmerkung°°°Wenn Sie Element in einer Next-Anweisung nicht angeben, wird die Ausführung trotzdem so fortgesetzt, als ob Element enthalten wäre. Eine Next-Anweisung vor der zugehörigen For-Anweisung führt zu einem Fehler.

Sie können die For...Each...Next-Anweisung nicht mit einem Datenfeld eines benutzerdefinierten Typs verwenden, da eine Variable vom Typ Variant keinen benutzerdefinierten Typ beinhalten darf.