Wie kann ich mit vba in excel alle tabellenblätter durchlaufen?

Es gibt zwei Möglichkeiten, alle Blätter einer Arbeitsmappe durchzugehen.

  • FÜR DIE NÄCHSTE SCHLEIFE
  • FÜR JEDE LOCKE

1. Für jede Schleife verwenden

Wie Sie wissen, können Sie mit FOR EACH alle Objekte in der Sammlung durchlaufen, und in einer Arbeitsmappe sind Arbeitsblätter eine Sammlung aller Arbeitsblätter.

Führen Sie die folgenden Schritte aus:

  1. Deklarieren Sie zunächst eine Variable, um auf ein Arbeitsblatt für die Schleife zu verweisen.
    declare-a-variable-to-refer
  2. Danach starten Sie die Schleife mit dem Schlüsselwort „For every“ und beziehen sich auf jedes Arbeitsblatt in der Arbeitsmappe.
    start-the-loop-with-the-keyword
  3. Angenommen, Sie möchten in Zelle A1 jedes Arbeitsblatts einen Wert eingeben, können Sie den Schreibcode wie folgt verwenden.
    want-to-enter-a-value-in-the-cell
  4. Verwenden Sie am Ende das Schlüsselwort „End“, um die Schleife zu beenden.
    use-the-keyword-end

Nützliche Links: Ausführen eines MakrosMakrorecorderVisual Basic EditorHandbuch zu persönlichen Makros

 Sub vba_loop_sheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("A1").Value = "Yes" Next ws End Sub

Dieser Code durchläuft jedes Blatt und gibt den Wert in Zelle A1 jedes Blattes ein. Der Vorteil dieser Methode besteht darin, dass alle Blätter in der Arbeitsmappe durchsucht werden.

Und wenn Sie alle Arbeitsblätter in einer geschlossenen Arbeitsmappe durchsuchen möchten, verwenden Sie den folgenden Code.

 Sub vba_loop_sheets() Dim wb As Workbook Dim ws As Worksheet Application.DisplayAlerts = False Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") For Each ws In wb.Worksheets ws.Range("A1").Value = "Done" Next ws wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

2. Verwenden Sie die For Next-Schleife

Sie können eine Schleife auch mit der FOR NEXT- Schleife durchführen, wobei Sie anhand der Anzahl der Blätter entscheiden können, wie viele Schleifen ausgeführt werden sollen, und den Schleifenzähler verwenden können, um auf jedes Blatt zu verweisen.

Hier sind die Schritte, die Sie befolgen müssen:

  1. Zuerst müssen Sie zwei Variablen deklarieren, um den Zählwert für die Schleife zu speichern, und eine für die Anzahl der Blätter in der Arbeitsmappe.
    declare-to-variable-to-write-count-value
  2. Stellen Sie nun den Wert der Variablen „shtCount“ entsprechend der Anzahl der Blätter in der Arbeitsmappe ein.
    set-the-value-for-the-shtcount
  3. Starten Sie anschließend den Code für die Schleife mit dem Schlüsselwort „For i“ und verwenden Sie die Blattanzahl des Maximalwerts für den Schleifenzähler.
    start-the-code
  4. Von hier aus müssen Sie mit dem Schleifenzähler alle Blätter durchgehen und in Zelle A1 jedes Blattes den Wert „Ja“ eingeben.
    use-the-loop-counter-to-loop

Vollständiger Code

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long shtCount = Sheets.Count For i = 1 To shtCount Sheets(i).Range("A1").Value = "Yes" Next i End Sub

Und wenn Sie eine geschlossene Arbeitsmappe durchsuchen möchten, verwenden Sie den folgenden Code.

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") shtCount = wb.Sheets.Count Application.DisplayAlerts = False For i = 1 To shtCount wb.Sheets(i).Range("A1").Value = "Yes" Next i wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert