VBA-Löschblatt - Wie lösche ich ein Arbeitsblatt mit VBA-Code?

Inhaltsverzeichnis

Excel VBA-Löschblatt

Um ein Blatt in VBA zu löschen, verwenden wir eine Methode zum Löschen von Arbeitsblättern. Um diese Methode zuerst anzuwenden, müssen wir identifizieren, welches Blatt wir löschen, indem wir den Blattnamen aufrufen. Wir haben zwei Methoden, um dasselbe zu tun: Zuerst schreiben wir sheet1.delete direkt und die zweite Methode ist sheet (sheet1) .delete.

Die Syntax folgt also.

Arbeitsblätter ("Arbeitsblattname"). Löschen

ODER

Blätter ("Blattname"). Löschen

Zuerst müssen wir den Blattnamen mithilfe von Arbeitsblatt oder Blattobjekt angeben , später können wir die Methode „Löschen“ verwenden.

Wie lösche ich Excel-Tabellen mit VBA-Code?

Beispiel 1 - Löschen Sie das Arbeitsblatt unter Verwendung seines Namens

Angenommen, Sie haben viele Blätter, und um das jeweilige Arbeitsblatt zu löschen, müssen Sie das Arbeitsblatt mit seinem Namen erwähnen. Zum Beispiel habe ich 3 verschiedene Blätter mit den Namen "Sales 2016", "Sales 2017" und "Sales 2018".

Wenn ich das Blatt mit dem Namen " Sales 2017 " löschen möchte, muss ich den Blattnamen wie folgt angeben.

Code:

Sub Delete_Example1 () Arbeitsblätter ("Blätter 2017"). End Sub

Das Problem bei der direkten Erwähnung des Arbeitsblattnamens ist, dass die IntelliSense-Liste von VBA nicht angezeigt wird. Erwähnen Sie die Methode auf jeden Fall als " Löschen".

Code:

Sub Delete_Example1 () Arbeitsblätter ("Blätter 2017"). End Sub löschen

Dadurch wird das Blatt mit dem Namen „ Sales 2017 “ gelöscht .

Fehler beim Löschen des Arbeitsblatts: Wenn wir versuchen, das nicht vorhandene Arbeitsblatt zu löschen, oder wenn wir den Arbeitsblattnamen falsch angeben, wird der VBA-Fehler als "Index außerhalb des Bereichs" angezeigt.

Oben wurde der Fehler "Index außerhalb des Bereichs" angezeigt, da in meiner Arbeitsmappe kein Blattname mit dem Namen "Sales 2017" vorhanden ist.

Beispiel 2 - Löschen Sie das Arbeitsblatt anhand seines Namens mit Variablen

Wie wir im obigen Beispiel gesehen haben, wird die IntelliSense-Liste nicht angezeigt, sobald wir mithilfe des Worksheets-Objekts auf den Arbeitsblattnamen verweisen. Um die IntelliSense-Liste anzuzeigen, müssen Variablen verwendet werden.

Schritt 1: Deklarieren Sie zunächst die Variable als Arbeitsblatt .

Code:

Sub Delete_Example2 () Dim Ws As Worksheet End Sub

Schritt 2: Da das Arbeitsblatt eine Objektvariable ist, müssen wir die Variable mithilfe des Wortes „ SET “ auf das jeweilige Arbeitsblatt einstellen .

Code:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Arbeitsblätter ("Sales 2017") End Sub

Jetzt bezieht sich die Variable "Ws" auf das Arbeitsblatt "Sales 2017".

Schritt 3: Mit der Variablen " Ws " können wir nun auf die gesamte IntelliSense-Liste des Arbeitsblatts zugreifen.

Code:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Arbeitsblätter ("Sales 2017") Ws. End Sub

Schritt 4: Wählen Sie aus der IntelliSense-Liste die Methode „ Löschen “ aus.

Code:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Arbeitsblätter ("Sales 2017") Ws.Delete End Sub

So können wir mithilfe von Variablen auf die IntelliSense-Liste zugreifen.

Beispiel 3 - Aktives Arbeitsblatt löschen

Aktives Blatt ist nichts anderes als das Arbeitsblatt, das gerade aktiv oder ausgewählt ist. Für diese Methode müssen wir den Arbeitsblattnamen nicht erwähnen. Schauen Sie sich zum Beispiel den folgenden VBA-Code an.

ActiveSheet.Delete

Derzeit lautet das aktive Blatt „Sales 2017“.

Wenn ich den Code ausführe, wird das aktive Blatt "Sales 2017" gelöscht.

Jetzt werde ich "Sales 2016" auswählen.

Jetzt wird das aktive Blatt "Sales 2016" gelöscht.

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

Der obige Code löst einen Fehler aus, da versucht wird, alle Blätter in der Arbeitsmappe zu löschen. Um dies zu vermeiden, müssen wir mindestens ein Arbeitsblatt aufbewahren.

Wenn wir alle Arbeitsblätter außer dem aktiven Blatt löschen möchten, müssen wir den folgenden Code verwenden.

Code:

Sub Delete_Example2 () Dim Ws als Arbeitsblatt für jedes Ws in ActiveWorkbook.Worksheets Wenn ActiveSheet.Name Ws.Name Dann Ws.Delete End If Next Ws End Sub

Wenn wir kein bestimmtes Arbeitsblatt löschen möchten, sondern alle anderen Arbeitsblätter löschen möchten, können wir den folgenden Code verwenden.

Code:

Sub Delete_Example2 () Dim Ws als Arbeitsblatt für jedes Ws in ActiveWorkbook.Worksheets Wenn Ws.Name "Sales 2018" Dann 'Sie können den Arbeitsblattnamen Ws.Delete End If Next Ws End Sub ändern

Mit dem obigen Code werden alle Arbeitsblätter mit Ausnahme des Arbeitsblatts mit dem Namen "Sales 2018" gelöscht.

Interessante Beiträge...