Die Foreach-Schleife ist eines der benutzerfreundlichsten und beliebtesten Konstrukte in der in Excel verwendeten VBA-Programmiersprache. Mit dieser Schleife können Sie die Elemente eines Arrays oder einer Datenauflistung durchlaufen und bestimmte Operationen für jedes Element ausführen. Manchmal ist es jedoch notwendig, einige Operationen innerhalb einer Schleife zu überspringen und zum nächsten Element zu wechseln. In solchen Fällen kann der Befehl continue nützlich sein.
Mit dem Befehl continue können Sie sofort zur nächsten Iteration der foreach-Schleife springen, indem Sie den Code überspringen, der sich unterhalb dieses Befehls befindet. Die Verwendung des Befehls continue ist besonders nützlich, wenn Sie bestimmte Vorgänge für bestimmte Werte von Elementen in einem Array oder einer Auflistung überspringen möchten.
Die Verwendung des Befehls continue in einer foreach-Schleife in Excel VBA ist ziemlich einfach. Um dies zu tun, müssen Sie innerhalb der Schleife eine Bedingung schreiben, unter der der Übergang zur nächsten Iteration ausgeführt wird. Verwenden Sie dann den GoTo-Operator und die Bezeichnung, zu der Sie navigieren möchten. Dies kann eine Beschriftung sein, die vor dem Beginn der Schleife platziert wurde, oder eine Beschriftung, die sich innerhalb der Bedingung befindet, unter der Sie zur nächsten Iteration wechseln möchten.
Es ist jedoch erwähnenswert, dass die Verwendung des Befehls continue in einer foreach-Schleife nicht immer eine gute Lösung ist. Manchmal ist es besser, andere Konstrukte wie eine bedingte Anweisung oder for- oder while-Schleifenanweisungen zu verwenden, um das gleiche Ergebnis zu erzielen. Daher sollten Sie vor der Verwendung des Befehls continue die Alternativen zur Problemlösung sorgfältig prüfen und die am besten geeignete auswählen.
Beschreibung der Foreach-Schleife in Excel VBA
Die grundlegende Struktur der Foreach-Schleife lautet wie folgt:
For Each элемент In коллекция' тело циклаNext элемент
Dabei ist das Element eine Variable, die das aktuelle Auflistungselement bei jeder Iteration der Schleife speichert, und die Auflistung ist der Satz von Objekten, durch die die Schleife geführt wird.
Innerhalb des Schleifenkörpers können Sie verschiedene Operationen für das aktuelle Auflistungselement ausführen. Zum Beispiel:
For Each ячейка In Range("A1:A10")' выводим значение текущей ячейкиMsgBox ячейка.ValueNext ячейка
In diesem Beispiel wird jeder Wert aus dem Zellbereich A1:A10 in einem Dialogfeld angezeigt.
Eine Foreach-Schleife kann auch mit komplexen Objekten wie Sammlungen, Arrays und sogar benutzerdefinierten Datentypen verwendet werden. Zum Beispiel:
Dim студент As New Collectionстудент.Add "Иван"студент.Add "Анна"студент.Add "Максим"For Each имя In студент' выводим имя каждого студентаMsgBox имяNext имя
In diesem Beispiel durchläuft eine Foreach-Schleife jedes Element der Student-Auflistung und gibt den Namen jedes Schülers im Dialogfeld aus.
Die Foreach-Schleife kann auch mit Befehlen zum Übergeben von Steuerelementen im Code verwendet werden, z. B. Exit For und Continue For , mit denen Sie die aktuelle Iteration der Schleife überspringen und zum nächsten Element der Auflistung springen können. Zum Beispiel:
For Each число In числа' пропускаем отрицательные числаIf число < 0 ThenContinue ForEnd If' выводим положительные числаMsgBox числоNext число
In diesem Beispiel überspringt die foreach-Schleife negative Zahlen und gibt nur positive Werte aus.
Daher ist die Foreach-Schleife in Excel VBA ein leistungsfähiges Werkzeug für die Arbeit mit Sammlungen und ermöglicht es Ihnen, jedes Element einer Sammlung bequem zu bearbeiten, die gewünschten Vorgänge auszuführen und unnötige Elemente zu überspringen.
Verwenden des Befehls continue in einer foreach-Schleife
Mit dem Befehl continue können Sie die aktuelle Iteration der Schleife überspringen und zur nächsten fortfahren. Auf diese Weise können Sie nur die Elemente der Sammlung auswählen, die Sie benötigen, und bestimmte Operationen mit ihnen ausführen.
Hier ist ein Beispiel, das die Verwendung des Befehls continue in einer foreach-Schleife veranschaulicht:
Sub Example()Dim numbers As Variantnumbers = Array(1, 2, 3, 4, 5)For Each number In numbersIf number = 3 ThenContinue ForEnd If' Выполнение операций с числомMsgBox "Number: " & numberNext numberEnd Sub
In diesem Beispiel haben wir ein Array von Zahlen, und wir möchten bestimmte Operationen mit jeder Zahl außer der Zahl 3 durchführen. In der Zeile "If number = 3 Then" verwenden wir den Befehl continue (als Schlüsselwort "Continue"), um die aktuelle Iteration der Schleife zu überspringen, wenn die Zahl 3 ist. Daher werden Operationen mit der Nummer 3 nicht ausgeführt und die Schleife geht zur nächsten Zahl über.
Mit dem Befehl continue können Sie die Ausführung einer foreach-Schleife in Excel VBA flexibler steuern, indem Sie nur die Elemente auswählen, die Sie in der Sammlung benötigen, und die erforderlichen Elemente weglassen.
Es ist wichtig zu beachten, dass der Befehl continue kein Standardelement der VBA-Sprache ist und in der VBA-Sprache für Excel nicht unterstützt wird. Sie können ihr Verhalten jedoch mithilfe von bedingten Operatoren und Bezeichnungen modellieren.
Praktische Beispiele für die Verwendung des Befehls continue
Mit dem Befehl continue in einer foreach-Schleife in Excel VBA können Sie die aktuelle Iteration der Schleife überspringen und zur nächsten fortfahren. Dies ist nützlich, wenn Sie eine Überprüfung durchführen und die Ausführung eines bestimmten Codeblocks überspringen möchten, wenn dieser ausgelöst wird.
Betrachten Sie einige praktische Beispiele, in denen der Befehl continue nützlich sein kann.
Angenommen, wir haben ein Array von Werten und möchten einige Operationen nur für Werte ausführen, die größer als ein bestimmter Schwellenwert sind. In diesem Fall können wir den Befehl continue verwenden, um die anderen Werte zu überspringen.
Dim values() As Integer
values = Array(1, 5, 10, 15, 20)
Dim threshold As Integer
For Each value In values
' Operationen mit value ausführen, wenn value > threshold ist
In diesem Beispiel überspringt der Befehl continue die Codeausführung danach und springt zur nächsten Iteration der Schleife, wenn der Wert kleiner oder gleich dem Schwellenwert ist.
Angenommen, wir haben eine Datentabelle und möchten einige Operationen nur für Zellen mit einer bestimmten Formatierung durchführen. In diesem Fall können wir den Befehl continue verwenden, um die restlichen Zellen zu überspringen.
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("A1:B5")
For Each cell In rng
If Not cell.Interior.Color = RGB(255, 0, 0) Then
' Führen Sie Operationen für eine Zelle aus, wenn sie eine bestimmte Formatierung hat
In diesem Beispiel überspringt der Befehl continue die Codeausführung danach und springt zur nächsten Iteration der Schleife, wenn die Zelle keine bestimmte Formatierung (in diesem Fall eine Farbe) aufweist. Auf diese Weise können wir Operationen nur mit den gewünschten Zellen durchführen.
Die obigen Beispiele veranschaulichen die praktische Verwendung des Befehls continue in einer foreach-Schleife in Excel VBA. Mit dem Befehl continue können Sie die Codeausführung effizienter verwalten und die Anzahl der erforderlichen bedingten Anweisungen reduzieren, wenn Sie ordnungsgemäß verwendet werden.