Wie erstelle ich ein neues blatt mit vba-code?
Sobald Sie mit dem Erlernen von VBA beginnen, ist es eines der coolsten Dinge, die Sie tun können, VBA-Code zu schreiben, um ein neues Arbeitsblatt in eine Arbeitsmappe einzufügen.
Nun, es gibt bereits eine Tastenkombination zum Einfügen eines neuen Arbeitsblatts oder Sie können auch die normale Option verwenden, aber der Vorteil der Verwendung von VBA-Code besteht darin, dass Sie mehrere Arbeitsblätter mit nur einem Klick hinzufügen können und auch definieren können, wo Sie hinzufügen möchten Es.
Dazu müssen Sie die Sheets.Add-Methode verwenden. In diesem Artikel erfahren Sie, wie Sie damit ein oder mehrere Arbeitsblätter zu einer Arbeitsmappe hinzufügen.
Sheets.Add-Methode
Sheets.Add ([Before], [After], [Count], [Type])
- Vorher: um ein neues Blatt vor einem Blatt hinzuzufügen.
- Nachher: Um das neue Blatt vor einem Blatt hinzuzufügen.
- Anzahl: Anzahl der hinzuzufügenden Blätter.
- Typ: Art des Blatts, das Sie hinzufügen möchten ( LINK )
Schreiben Sie VBA-Code, um einer Arbeitsmappe ein neues Blatt hinzuzufügen
Öffnen Sie den Visual Basic-Editor und befolgen Sie diese Schritte.
- Zuerst müssen Sie die Sheets.Add-Methode eingeben.
- Als nächstes müssen Sie definieren, wo das neue Blatt hinzugefügt werden soll (Vorher oder Nachher).
- Als nächstes geben Sie die Anzahl der Arbeitsblätter ein.
- Letztendlich die Art des Blattes.
Verschiedene Möglichkeiten zum Hinzufügen neuer Blätter zu einer Arbeitsmappe mithilfe von VBA-Code
Im Folgenden finden Sie verschiedene Möglichkeiten, ein neues Blatt zu einer Arbeitsmappe hinzuzufügen:
1. Fügen Sie ein einzelnes Blatt hinzu
Um ein einzelnes Blatt hinzuzufügen, können Sie den folgenden Code verwenden, wobei Sie keine Argumente angegeben haben.
Sub SheetAddExample1() ActiveWorkbook.Sheets.Add End Sub
Dieser Code weist Excel an, ein Blatt zur aktiven Arbeitsmappe hinzuzufügen. Da Sie jedoch keine Argumente haben, verwendet es die Standardeinstellungen und fügt vor dem aktiven Blatt ein Arbeitsblatt (xlWorksheet) hinzu.
Hier ist eine andere Möglichkeit, dies zu schreiben, siehe den Code unten.
Sub SheetAddExample2() Sheets.Add End Sub
Da Sie sich bereits in der aktiven Arbeitsmappe befinden, können Sie auch den folgenden Code verwenden. Er macht das Gleiche.
2. Fügen Sie mehrere Blätter hinzu
Um mehrere Blätter auf einmal hinzuzufügen, setzen Sie einfach das COUNT-Argument auf die Anzahl der Blätter, die Sie hinzufügen möchten.
Sub AddSheets3() Sheets.Add Count:=5 End Sub
Jetzt beträgt die Anzahl der von Ihnen festgelegten Blätter 5. Wenn Sie diesen Code ausführen, werden die fünf neuen Blätter sofort zur Arbeitsmappe hinzugefügt.
3. Fügen Sie ein Blatt mit einem Namen hinzu
Wenn Sie das Blatt nach dem Hinzufügen umbenennen möchten, können Sie den folgenden Code verwenden:
Sub AddNewSheetswithNameExample1() Sheets.Add.Name = "myNewSHeet" End Sub
Im obigen Code haben wir das Namensobjekt ( LINK ) verwendet, mit dessen Hilfe Sie den Namen eines Blatts angeben können.
4. Fügen Sie ein Blatt mit einem Namen aus einer Zelle hinzu
Sie können den Wert, der als Blattname verwendet werden soll, auch aus einer Zelle übernehmen.
Sub AddNewSheetswithNameExample2() Sheets.Add.Name = Range("A1") End Sub
Im obigen Code wird Zelle A1 verwendet, um den Namen des neuen Blatts abzurufen.
5. Fügen Sie ein Blatt nach/vor einem bestimmten Blatt hinzu
Da diese Argumente bereits in Sheets.Add vorhanden sind, können Sie das Blatt angeben, um davor oder danach ein neues Blatt hinzuzufügen.
Sub AddSheetsExample5() Sheets.Add Before:=Worksheets("mySheet") Sheets.Add After:=Worksheets("mySheet") End Sub
Im obigen Code haben Sie nun zwei Codezeilen, die Sie vor und nach einem Argument in der Sheet.Add-Methode verwendet haben. Wenn Sie diesen Code ausführen, werden also zwei Blätter hinzugefügt, eines vor und eines nach „mySheet“.
6. Fügen Sie am Anfang ein neues Blatt hinzu
Mit dem Argument before using können Sie auch ein Blatt am Anfang der Blätter in der Arbeitsmappe hinzufügen.
Im Grunde werden wir also die Blattnummer anstelle des Blattnamens angeben.
Sub AddSheetsExample6() Sheets.Add Before:=Sheets(1) End Sub
Im obigen Code haben Sie die Blattnummer (1) verwendet, die VBA anweist, das Blatt vor dem Blatt einzufügen, das sich in allen Arbeitsblättern an der ersten Position befindet. Auf diese Weise wird das neue Blatt immer am Anfang hinzugefügt.
7. Fügen Sie am Ende (nach dem letzten Blatt) ein neues Blatt hinzu.
Um am Ende ein neues Blatt hinzuzufügen, müssen Sie den Code anders schreiben. Dazu müssen Sie also wissen, wie viele Blätter sich in der Arbeitsmappe befinden, damit Sie am Ende ein neues Blatt hinzufügen können.
Sub AddSheetsExample8() Sheets.Add After:=Sheets(Sheets.Count) End Sub
Im obigen Code gibt Sheet.Count die Anzahl der Blätter in der Arbeitsmappe zurück, und da Sie das Argument „after“ festlegen, wird das neue Blatt nach dem letzten Blatt in der Arbeitsmappe hinzugefügt.
8. Fügen Sie mehrere Blätter hinzu und verwenden Sie Bereichsnamen
Der folgende Code zählt Zeilen im Bereich A1:A7. Danach führt es eine Schleife aus, um Blätter basierend auf der Bereichsanzahl hinzuzufügen, und verwendet die Bereichswerte, um das Blatt beim Hinzufügen zu benennen.
Sub AddSheetsExample9() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A7").Cells(i, 1).Value Worksheets.Add().Name = sheet_name Next i End Sub
Mit dem obigen Code ist es jedoch möglich, dass der Name des Blatts, das Sie hinzufügen möchten, bereits vorhanden ist oder dass sich im Namensbereich eine leere Zelle befindet.
In diesem Fall müssen Sie einen Code schreiben, der prüfen kann, ob das Blatt mit demselben Namen bereits existiert oder nicht und ob die Zelle, aus der Sie den Blattnamen übernehmen möchten, leer ist oder nicht.
Nur wenn beide Bedingungen erfüllt sind, sollte ein neues Blatt hinzugefügt werden. Lassen Sie es mich in zwei Schritten formulieren:
Zunächst müssen Sie eine benutzerdefinierte Excel-Funktion schreiben, um zu überprüfen, ob ein Blatt mit demselben Namen bereits vorhanden ist oder nicht.
Function SheetCheck(sheet_name As String) As Boolean Dim ws As Worksheet SheetCheck = False For Each ws In ThisWorkbook.Worksheets If ws.Name = sheet_name Then SheetCheck = True End If Next End Function
Zweitens müssen Sie mit dieser Funktion Code schreiben und dieser Code muss auch prüfen, ob die Namenszelle leer ist oder nicht.
Sub AddMultipleSheet2() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A10").Cells(i, 1).Value If SheetCheck(sheet_name) = False And sheet_name <> "" Then Worksheets.Add().Name = sheet_name End If Next i End Sub
Im obigen Code haben Sie nun die VBA-IF-Anweisung verwendet und in dieser Anweisung haben Sie eine Blattprüffunktion, die den Blattnamen prüft, und dann haben Sie eine Bedingung, um zu prüfen, ob die Namenszelle einen leeren Wert hat.