VBA für jede Schleife

Excel VBA für jede Schleife

VBA For Each Loop durchläuft die gesamte Sammlung von Objekten oder Elementen und führt ähnliche Aktivitäten aus. Es berücksichtigt alle verfügbaren angegebenen Objekte und führt in jedem Objekt angewiesene Aktivitäten aus.

In VBA ist es obligatorisch, die Schleifen in VBA zu verstehen. Mit einer Schleife können Sie für viele Zellen oder Objekte in Excel dieselbe Art von Aktivität ausführen. Im heutigen Artikel konzentrieren wir uns auf den For Each Loop-Mechanismus.

Syntax

For Each Loop kann die gesamte Sammlung von Objekten oder Elementen durchlaufen. Eine Sammlung ist nichts anderes als "Alle geöffneten Arbeitsmappen", "Alle Arbeitsblätter in einer Arbeitsmappe", "Alle Sammlungen von Formen und Diagrammen in der Arbeitsmappe".

Schauen wir uns die Syntax an.

Was ist für jedes Objekt in der Sammlung zu tun? Nächstes Objekt

Zum Beispiel haben Sie 10 Blätter in Ihrer Arbeitsmappe und möchten alle Arbeitsblätter außer dem, in dem Sie sich befinden, ausblenden. Können Sie manuell ausblenden, ja, Sie können, aber was ist, wenn Sie 100 Blätter wie dieses haben, ist das nicht langweilig und zeitaufwändig -aufwendige Aufgabe zu erledigen. Sie können dies mit für jede Schleife tun.

Wie verwende ich For Each Loop in VBA? (Beispiele)

Sie können diese VBA für jede Schleifenvorlage hier herunterladen - VBA für jede Schleifenvorlage

Beispiel 1 - Fügen Sie denselben Text in alle Blätter ein

Wir werden anhand eines einfachen Beispiels sehen, wie FOR EACH in VBA verwendet wird. Angenommen, Sie haben 5 Arbeitsblätter in einer Arbeitsmappe und möchten das Wort „Hallo“ in alle Arbeitsblätter in Zelle A1 einfügen.

Wir können dies mit FOR EACH LOOP tun. Eine Sache, an die Sie sich hier erinnern müssen, ist, dass wir diese Aktivität tatsächlich in jedem Arbeitsblatt ausführen, nicht in demselben Arbeitsblatt. Führen Sie die folgenden Schritte aus, um den VBA-Code zu schreiben.

Schritt 1: Starten Sie das Excel-Makro.

Code:

 Sub For_Each_Example1 () End Sub 

Schritt 2: Da wir uns auf die Arbeitsblätter beziehen, deklarieren Sie die Variable als "Arbeitsblatt".

Code:

 Sub For_Each_Example1 () Dim Ws As Worksheet End Sub 

Schritt 3: Mit FOR EACH LOOP müssen wir nun auf jedes Arbeitsblatt in der aktiven Arbeitsmappe verweisen.

Code:

 Sub For_Each_Example1 () Dim Ws als Arbeitsblatt für jedes Ws in ActiveWorkbook.Worksheets Next Ws End Sub 

Schritt 4: Schreiben Sie nun in jedes Arbeitsblatt, was wir tun möchten. In jedem Arbeitsblatt müssen wir das Wort "Hallo" in Zelle A1 einfügen.

Code: 

 Sub For_Each_Example1 () Dim Ws als Arbeitsblatt für jedes Ws in ActiveWorkbook.Worksheets Ws.Range ("A1"). Value = "Hello" Next Ws End Sub 

Schritt 5: Führen Sie diesen Code nun manuell über die Option aus oder drücken Sie die Tastenkombination F5. Es spielt keine Rolle, wie viele Blätter Sie haben. In alle Arbeitsblätter wird das Wort „Hallo“ eingefügt.

Beispiel 2 - Alle Blätter ausblenden

Wie bereits weiter oben in diesem Beitrag erwähnt, müssen Sie Hunderte von Blättern ausblenden, außer dem, in dem Sie sich befinden. Mit Für jede Schleife können wir alle Blätter in Excel ausblenden.

Schritt 1: Starten Sie das Makro mit Ihrem Namen.

Code:

 Sub For_Each_Example2 () End Sub 

Schritt 2: Deklarieren Sie die Variable als " Ws ".

Code:

 Sub For_Each_Example2 () Dim Ws As Worksheet End Sub 

Schritt 3: Jetzt müssen Sie in jedem Arbeitsblatt das Blatt ausblenden.

Code:

 Sub For_Each_Example2 () Dim Ws als Arbeitsblatt für jedes Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws End Sub 

Schritt 4: Wenn Sie jedoch den obigen Code ausführen, wird versucht, alle Blätter auszublenden, aber Excel benötigt mindestens ein Blatt, um sichtbar zu sein. Wir müssen also sagen, welches Blatt nicht ausgeblendet werden soll.

Code:

 Sub For_Each_Example2 () Dim Ws als Arbeitsblatt für jedes Ws in ActiveWorkbook.Worksheets Wenn Ws.Name "Main Sheet", dann Ws.Visible = xlSheetVeryHidden End If Next Ws End Sub 

Das Operatorsymbol bedeutet ungleich in VBA .

Der Code sagt also, wenn Sie alle Arbeitsblätter in der aktiven Arbeitsmappe durchlaufen, wird sie nur ausgeblendet, wenn der Blattname nicht dem Blattnamen des Hauptblatts entspricht.

Dies kann mithilfe der IF-Anweisung in VBA erfolgen. Schreiben Sie den Code als IF Ws.Name "Main Sheet". Dann ausblenden oder wenn er dem Blattnamen "Main Sheet" entspricht, dann nicht ausblenden.

Schritt 5: Führen Sie nun den Code mit der Taste F5 oder manuell aus. Dadurch wird das gesamte Arbeitsblatt mit Ausnahme des als "Hauptblatt" bezeichneten Arbeitsblatts ausgeblendet.

Beispiel 3 - Alle Blätter einblenden

Wir haben gesehen, wie alle Blätter außer dem, in dem wir uns befinden, ausgeblendet werden. Ebenso können wir auch alle Arbeitsblätter einblenden.

Wir müssen nur den Code von xlSheetVeryHidden in xlSheetVisible ändern.

Code:

 Sub For_Each_Example3 () Dim Ws als Arbeitsblatt für jedes Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub 

Here we don’t need the IF condition because we are unhiding all the sheets. If you don’t want to unhide any specific sheet then you can use the IF condition and supply the sheet name.

Example #4 – Protect and UnProtect All the Sheets

Protect All Sheets: We can protect all the sheets in the workbook with just a piece of code. All the code is the same only thing we need to do here is instead of Ws. Visible we need to put the code Ws. Protect and type the password.

Code:

 Sub For_Each_Example4() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Protect Password:="Excel@2019" Next Ws End Sub 

Unprotect All the Sheets: On a similar note, using vba we can also unprotect all sheets that where protected in the workbook. We just need to put the word Unprotect and password.

Code:

 Sub For_Each_Example6() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Unprotect Password:="Excel@2019" Next Ws End Sub 

Things to Remember

  • Each is for the collection of objects.
  • It will consider all the specified objects in the specified workbook.
  • While declaring the variable we need to which object we are referring to. For example Worksheet, Workbook, Chart, etc.