VBA Vorgehen zum Hinzufügen und zur Bezeichnung von Arbeitsblättern

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Pandau Ting

Last updated on Januar 12, 2022

In diesem Tutorial wird erläutert, wie VBA Arbeitsblätter hinzugefügt und eingefügt werden.

Blatt hinzufügen

Dieses einfache Makro fügt ein Blatt vor dem ActiveSheet ein:

Sub Add ()
    Sheets.Add
End Sub

Nachdem ein Blatt eingefügt wurde, wird das neue Blatt zum ActiveSheet. Das ActiveSheet-Objekt kann dazu verwenden werden, um mit dem neuen Blatt zu arbeiten (am Ende dieses Artikels zeigen wir, wie Sie ein neues Blatt direkt einer Variable zuweisen können).

ActiveSheet.Name = "NeuesBlatt"

Blatt mit Namen hinzufügen

Dem zu erstellenden Blatt kann auch gleichzeitig ein Name zugewiesen werden:

Sheets.Add.Name = "NewSheet"

Neues Blatt mit Namen aus einer Zelle erstellen

Oder verwenden Sie einen Zellwert, um ein neues Blatt zu benennen:

Sheets.Add.Name = Range("A3").Value

Blatt vor/nach einem anderen Blatt hinzufügen

Sie können auch festlegen, an welcher Stelle das neue Blatt eingefügt werden soll. Sie können die Eigenschaften After oder Before verwenden, um ein Blatt an einer bestimmten Stelle der Arbeitsmappe einzufügen.

Blatt nach einem anderen Blatt einfügen

Mit diesem Code wird das neue Blatt nach (After) einem anderen Blatt eingefügt:

Sheets.Add After:=Sheets("Eingabe")

Mit diesem Code wird ein neues Blatt nach (After) einem anderen Blatt eingefügt und der Name des Blattes angegeben:

Sheets.Add(After:=Sheets("Eingabe")).Name = "NeuesBlatt"

Beachten Sie die zusätzlichen Klammern, die im zweiten Beispiel erforderlich sind (das erste Beispiel wirft einen Fehler aus, wenn die zusätzlichen Klammern hinzugefügt würden).

blatt einfuegen hinter anderem

oder bevor (Before):

Sheets.Add(Before:=Sheets("Eingabe")).Name = "NeuesBlatt"

In diesen Beispielen sind die Referenzblätter explizit benannt, vor dem bzw. nach dem das zu erstellende Blatt eingefügt werden soll. Oft werden Sie stattdessen Blattindexnummern verwenden wollen, um das Blatt an den Anfang oder ans Ende der Arbeitsmappe zu positionieren:

Blatt am Ende der Arbeitsmappe einfügen

So fügen Sie ein Blatt ans Ende der Arbeitsmappe ein:

Sheets.Add After:=Sheets(Sheets.Count)

Blatt an den Anfang der Arbeitsmappe hinzufügen:

Um es an den Anfang der Arbeitsmappe hinzuzufügen:

Sheets.Add(Before:=Sheets(1)).Name = "FirstSheet"

Blatt zu Variable hinzufügen

Dieser Code weist einer Variable das zu erstellende Blatt zu:

Dim ws As Worksheet
Set ws = Sheets.Add

Von hier aus können Sie das neu erstellte Blatt mit der Variable ‚ws‘ referenzieren:

ws.name = "VarSheet"

Weitere Add Sheet Beispiele

Blatt erstellen, wenn es nicht schon existiert

Möglicherweise möchten Sie ein Blatt nur dann erstellen, wenn es nicht bereits existiert.

 

 

 

Erstellen von Arbeitsblättern aus einer Liste von Namen

Die folgende Routine sieht sich den Inhalt einer einzelnen Spalte an und erstellt Excel-Arbeitsblätter in der aktuellen Arbeitsmappe mit diesen Namen. Sie ruft eine andere Funktion auf, um herauszufinden, ob ein Blatt mit diesem Namen bereits existiert. Wenn das der Fall ist, wird das Blatt nicht erstellt.

Private Sub CommandButton1_Click()
    Call ArbeitsblaetterErstellen(Sheets("Tabelle1").Range("A1:a10"))
End Sub

Sub ArbeitsblaetterErstellen(Namen_der_Blaetter As Range)

Dim Anzahl_Blaetter_zum_Hinzufuegen As Integer
Dim Blattname As String
Dim i As Integer

Anzahl_Blaetter_zum_Hinzufuegen = Namen_der_Blaetter.Rows.Count

    For i = 1 To Anzahl_Blaetter_zum_Hinzufuegen
        Blattname = Namen_der_Blaetter.Cells(i, 1).Value
        'Blatt nur hinzufügen, wenn es nicht bereits existiert und der Name länger als null Zeichen ist
        If (Blatt_Existiert(Blattname) = False) And (Blattname <> "") Then
            Worksheets.Add().Name = Blattname
        End If
    Next i
    
End Sub
Function Blatt_Existiert(Arbeitsblatt_Name As String) As Boolean

Dim Arbeitsblatt As Worksheet
Blatt_Existiert = False

For Each Arbeitsblatt In ThisWorkbook.Worksheets
    If Arbeitsblatt.Name = Arbeitsblatt_Name Then
        Blatt_Existiert = True
    End If
Next

End Function

Betrachten wir einmal den Text in den Zellen A1:A30 auf dem Blatt Tabelle1:

blatt einfuegen aus namesliste

Dann werden die folgenden Blätter erstellt:

blatt einfuegen aus namesliste danach

Man beachte, dass obwohl „Hund“ zweimal in der Liste auftaucht, nur ein Blatt mit dem Namen Hund erstellt wurde.

Um die XLS-Datei für dieses Tutorial herunterzuladen, klicken Sie hier.

VBA-Codierung leicht gemacht

Suchen Sie nicht länger online nach VBA-Code. Erfahren Sie mehr über AutoMacro – einen VBA Code Builder, der es Anfängern ermöglicht, Prozeduren von Grund auf mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer zu codieren!

alt text

Erfahren Sie mehr!

<<Zurück zu VBA-Beispielen

vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples