Excel VBA für jede Schleife

Das Schlüsselwort "Each" wird in VBA zusammen mit der Funktion "For" verwendet. Dies bedeutet, dass für jede Entität in einem Array oder dem Bereich der Vorgang in der for-Schleife wiederholt wird. Grundsätzlich wird der Schrittbereich nicht von 1 bis 5 oder 1 bis 10 eingegeben, sondern nur wie in der folgenden Syntax angegeben.

Syntax:

Für jeden Objektnamen im Bereich

Hinweis: Das Excel-Arbeitsblatt muss die Registerkarte Entwickler enthalten.

Wenn die Registerkarte "Entwickler" in Excel nicht angezeigt wird, führen Sie die folgenden Schritte aus.

Schritt 1: Klicken Sie auf Dateioption.

Schritt 2: Das Dropdown-Menü wird angezeigt. Klicken Sie auf die Registerkarte Optionen .

Schritt 3: Sobald Sie auf "Optionen" geklickt haben, erscheint ein Dialogfeld wie unten gezeigt und klicken Sie auf die Option " Farbband anpassen".

Schritt 4: Wenn Sie die Optionen für die benutzerdefinierte Multifunktionsleiste nach unten ziehen, finden Sie eine Option für Entwickler, die Sie aktivieren müssen, um VBA in Excel verwenden zu können.

Wie für jede Schleife in VBA verwenden?

Im Folgenden finden Sie verschiedene Beispiele für die Verwendung von For Each Loop in Excel mithilfe von VBA-Code.

Sie können diese VBA für jede Loop-Excel-Vorlage hier herunterladen - VBA für jede Loop-Excel-Vorlage

Excel VBA für jede Schleife - Beispiel 1

Wir nehmen ein einfaches Beispiel für For Each Loop in VBA. Angenommen, unten ist der Datensatz in VBA.

Führen Sie die folgenden Schritte aus, um For Each Loop in Excel VBA zu verwenden.

Schritt 1: Klicken Sie auf die Registerkarte "Entwickler" und dann auf die Option "Visual Basic" auf der linken Seite (erste Option), wie unten gezeigt.

Sobald Sie darauf klicken, erscheint ein neues Fenster wie unten gezeigt.

Sie werden feststellen, dass es auf der linken Seite zwei Registerkarten enthält, "Sheet1 (Sheet1)" und "ThisWorkbook". Der einzige Unterschied ist "Sheet1", wenn Sie Code nur für dieses bestimmte Blatt ausführen möchten, und in "ThisWorkbook" können wir einen Code schreiben und ausführen, der für die gesamte Excel-Arbeitsmappe angewendet werden kann.

Schritt 2: Doppelklicken Sie auf „Sheet1 (Sheet1)“ und Sie sehen einen leeren Bildschirm, auf dem wir den Code schreiben müssen. Geben Sie der erstellten Teilmenge einen Namen. Hier haben wir den Namen "Sub For_Each_Ex1 ()" gegeben, wie im folgenden Screenshot gezeigt.

Code:

 Sub For_Each_Ex1 () End Sub 

Auf diese Weise erstellen wir eine Teilmenge und automatisch wird „End Sub“ angezeigt. Dies ist eine Standardfunktion von Excel. Wenn "End Sub" nicht angezeigt wird, wird der Code nicht ausgeführt und es wird ein Fehler ausgegeben.

Schritt 3: Wir werden die Variablen als Bereich deklarieren.

Code:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range End Sub 

Hier haben wir zwei Variablen deklariert, "Earn", die wir mit For Each und "Range1" als Bereich des Datensatzes verwenden.

Schritt 4: Nun legen wir einen Bereich fest, dh einen Datenbereich, an dem wir arbeiten müssen, indem wir das Schlüsselwort „Set“ wie unten gezeigt verwenden.

Code:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") End Sub 

Hier haben wir "Range1" von den Range-Zellen A1 bis A10 festgelegt, was unser Datensatz ist.

Schritt 5: Führen Sie nun die For-Schleife mit jedem Schlüsselwort aus.

Code:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") für jeden Earn In Range1 End Sub 

Hier wird Earn für jeden Wert in Range ein Wert zugewiesen, da die For-Schleife Schritt für Schritt ausgeführt wird.

Schritt 6: Nun verwenden wir das Schlüsselwort "Msgbox", um jeden Zeileneintrag im zugewiesenen Bereich anzuzeigen.

Code:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") für jeden Earn In Range1 MsgBox Earn.Value End Sub 

Hier zeigt „Earn.value“ den Wert in der Zelle an, dh beginnend mit der ersten Zelle im Bereich.

Schritt 7: Jetzt möchten wir den nächsten Wert im angegebenen Zellbereich ausführen, daher müssen wir das Schlüsselwort "Next" im Code verwenden. Dies hilft, im Bereich weiter vorzugehen und jedes Objekt einzeln im Zellbereich anzuzeigen.

Code:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") für jeden Earn In Range1 MsgBox Earn.Value Next Earn End Sub 

Schritt 8: Führen Sie den Code durch Drücken von F5 oder Ausführen aus und sehen Sie die Ausgabe.

In dem Moment, in dem die Codezeile "Next Earn" ausgeführt wird, wird "Earn.value" mit dem nächsten Zellenwert im Bereich belegt. Klicken Sie nacheinander auf „OK“ und zeigen Sie jeden Wert im Bereich an, bis der Wertebereich abgeschlossen ist.

Excel VBA für jede Schleife - Beispiel 2

Wir nehmen ein weiteres Beispiel, in dem wir den Namen jedes Blattes in einer Excel-Datei anzeigen. Nehmen wir an, wir haben die folgenden Tabellenblätter in der Excel-Datei:

Als wir bemerken, dass es in der Excel-Datei ungefähr 5 Blätter gibt und wir den Namen von jedem nach dem anderen anzeigen müssen.

Wir werden den Code im Abschnitt "ThisWorkbook" schreiben und ausführen, wie im roten Feld unten hervorgehoben:

Doppelklicken Sie darauf und beginnen Sie, während der Fensterbereich angezeigt wird, den Code darin zu schreiben. Führen Sie die folgenden Schritte aus, um For Each Loop in Excel VBA zu verwenden:

Schritt 1: Wir werden den Code schreiben, indem wir einen Teilmengennamen wie unten gezeigt zuweisen.

Code:

 Sub pagename () End Sub 

Schritt 2: Außerdem können wir direkt mit dem Schreiben der For-Schleifenanweisung beginnen, ohne die Variable wie unten gezeigt zu deklarieren.

Code:

 Sub pagename () Für jeden Eintrag in Application.Sheets End Sub 

Hier ist "sht" unsere Variable1, die standardmäßig deklariert wird, und "Application.sheets" bedeutet, dass in der Datei alle Blätter berücksichtigt werden. Application.fucntion gibt an, dass wir jedes Feature, jede Funktion oder jedes Excel-Tool hinzufügen können, das bei der Ausführung des Codes berücksichtigt werden soll.

Schritt 3: Geben Sie nun die Syntax des Meldungsfelds ein und fügen Sie dem Namen des Anzeigeblatts die folgende Syntax hinzu:

Code:

 Sub pagename () For Each sht In Application.Sheets MsgBox "Der Blattname lautet:" & sht.Name End Sub 

Hier ist die Anweisung, die wir anzeigen möchten, "Der Blattname ist:" und dann geben wir ein kaufmännisches Und (&) ein, das die Codezeile verkettet, und dann geben wir "sht.Name" ein, dh es wird das Blatt beginnend mit dem ersten ausgewählt Blatt und zeigen Sie den Namen.

Schritt 4: Jetzt müssen wir den Vorgang für die Anzeige der einzelnen Blattnamen wiederholen. Daher würden wir "Next sht" wie folgt verwenden:

Code:

 Sub pagename () For Each sht In Application.Sheets MsgBox "Der Blattname lautet:" & sht.Name Next sht End Sub 

“Next sht” teilt dem System dies mit, betrachtet das nächste Blatt und zeigt dessen Namen für die weitere Ausführung an.

Schritt 6: Führen Sie den Code durch Drücken von F5 oder Ausführen aus und sehen Sie sich die Ausgabe an.

Sobald Sie auf "OK" klicken und der Code weiter ausgeführt wird, wird der nächste Blattname angezeigt. Der Code wird solange ausgeführt, bis keine weiteren Blätter mehr angezeigt werden.

Excel VBA für jede Schleife - Beispiel 3

Wir nehmen nun ein Beispiel, in dem wir alle Werte in einem gegebenen Datensatz oder einem Array summieren müssen. Angenommen, unten ist der Datensatz:

Führen Sie die folgenden Schritte aus, um For Each Loop in Excel VBA zu verwenden:

Schritt 1: Deklarieren Sie zuerst den Namen der Teilmenge als "eachadd ()" (siehe unten).

Code:

 Sub eachadd () End Sub 

Schritt 2: Jetzt deklarieren wir die benötigten Variablen, eine als Ganzzahl mit dem Namen "total", in der wir die Zellenwerte nacheinander aufsummieren und einen Bereich von Zellen festlegen, der Werte enthält, die wir hinzufügen müssen.

Code:

 Sub eachadd () Dim total As Integer Dim Range1 As Range End Sub 

Schritt 3: Nachdem Sie die Variable und den Bereich deklariert haben, müssen Sie den Bereich festlegen, der für die Schleife verwendet werden soll. Wir werden diesen Bereich von A1 bis A10 Zellen mit dem Schlüsselwort "Set" wie folgt festlegen:

Code:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range1 = Range ("A1: A10") End Sub 

Schritt 4: Wir können jetzt direkt mit der For-Schleifenfunktion beginnen und die Variable direkt deklarieren. Hier verwenden wir "add1" als Variable und es wird standardmäßig vom System deklariert.

Code:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range1 = Range ("A1: A10") Für jedes Add1 In Range1 End Sub 

Schritt 5: Fügen Sie jede Entität im Bereich einzeln und in die als "total" deklarierte Variable ein. Standardmäßig ist der Wert von "total" anfangs Null. Und wir müssen einen Wert nach dem anderen für die Zellen addieren, und diese Summe muss erneut zu "total" addiert werden.

Code:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range1 = Range ("A1: A10") Für jedes Add1 In Range1 total = total + add1.Value End Sub 

Die obige Anweisung wird von rechts nach links ausgeführt, dh "add1.value" ist der erste Zellenwert und addiert ihn zu "total", der Null ist. Daher wäre die Summe 0 + 1, was 1 ist. Und diese Summe als 1 würde in "total" vor dem "=" - Zeichen stehen. Dies ist von Vorteil, da die Formel von links nach rechts ausgeführt wird.

Schritt 6: Fügen Sie nun "Next add1" hinzu, um den nächsten Zellenwert des Datenbereichs zu berücksichtigen, und fügen Sie diesen Wert in die Variable "total" ein, wie unten gezeigt.

Code:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range1 = Range ("A1: A10") Für jedes Add1 In Range1 total = total + add1.Value Next add1 End Sub 

Schritt 6: Drücken Sie "F8", um den Code für jede Zeile auszuführen. Außerdem können wir den Wert von "total" in der Abbildung unten sehen.

In ähnlicher Weise führt for loop diese Summe eines Arrays weiter aus, bis der Zellenbereich abgelaufen ist.

Schritt 7: Jetzt verwenden wir das Schlüsselwort "Msgbox".

Code:

 Sub eachadd () Dim total As Integer Dim Range1 As Range Set Range1 = Range ("A1: A10") für jedes Add1 In Range1 total = total + add1.Value Next add1 MsgBox "Final Summation:" & total End Sub 

Schritt 8: Führen Sie den Code durch Drücken von F5 oder Ausführen aus und sehen Sie die Ausgabe.

Dinge, an die man sich erinnern sollte

  • "Jedes" Schlüsselwort wird meistens nur bei Verwendung der VBA For Loop-Funktion verwendet. Andernfalls ist die Verwendung in Excel VBA eingeschränkt.
  • Der Vorteil für jedes Schlüsselwort besteht nur darin, dass in der For-Anweisung keine Schritte von 1 bis x deklariert werden.

Empfohlene Artikel

Dies ist eine Anleitung zu VBA für jede Schleife. Hier wird die Verwendung von For Each Loop in Excel mithilfe von VBA-Code zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage erläutert. Im Folgenden finden Sie einige nützliche Excel-Artikel zu VBA -

  1. VBA-Do While-Schleife
  2. Spaltenwechsel in Excel
  3. VBA-Unterbrechung für Schleife
  4. Namen in Excel zählen
  5. Wie führe ich den VBA-Code aus?

Kategorie: