VBA-Löschblatt

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: erstens 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?

Sie können diese VBA Delete Sheet Excel-Vorlage hier herunterladen - VBA Delete Sheet Excel-Vorlage

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

Angenommen, Sie haben viele Blätter und um das bestimmte Arbeitsblatt zu löschen, müssen wir 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 trotzdem 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 den Arbeitsblattnamen mithilfe des Arbeitsblattobjekts referenzieren. Um die IntelliSense-Liste zu sehen, müssen Variablen verwendet werden.

Schritt 1: Deklarieren Sie zuerst 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 mit dem Wort „ 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 “.

Code:

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

Auf diese Weise 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 gelöscht, dh "Sales 2016".

Auf diese Weise können wir das Objekt "Active Sheet" verwenden, um das Arbeitsblatt zu löschen.

Hinweis: Um diese Methode verwenden zu können, müssen wir absolut sicher sein, was wir mit dem aktiven Blatt tun und welches Blatt ein aktives Blatt sein wird.

Beispiel 4 - Löschen Sie mehr als ein Arbeitsblatt

In unseren obigen Beispielen haben wir gesehen, wie ein einzelnes Blatt gelöscht wird. Wenn wir jedoch mehrere Arbeitsblätter haben, möchten wir beispielsweise 10 Arbeitsblätter löschen.

Wir können nicht weiter 10 Codezeilen schreiben, um das Arbeitsblatt zu löschen. Daher müssen wir Schleifen verwenden, um die Sammlung von Arbeitsblättern zu durchlaufen und sie zu löschen.

Der folgende Code durchläuft die Arbeitsblätter und löscht alle Arbeitsblätter in der Arbeitsmappe.

Code:

 Sub Delete_Example2 () Dim Ws als Arbeitsblatt für jedes 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 

Similarly, if we don’t want to delete specific worksheet but to delete all other worksheets then we can use below code.

Code:

 Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name  "Sales 2018" Then 'You can change the worksheet name Ws.Delete End If Next Ws End Sub 

The above code will delete all the worksheets except the worksheet named as “Sales 2018”.