Wie lösche ich ein blatt mit vba?
Um ein Blatt mit VBA zu löschen, müssen Sie die VBA-Methode „Löschen“ verwenden. Sie müssen das Blatt angeben, das Sie löschen möchten, und dann diese Methode verwenden. Nehmen wir an, wenn Sie „Blatt1“ löschen möchten, müssen Sie Blatt1 erwähnen, dann einen Punkt (.) eingeben und am Ende „Löschen“ eingeben.
In diesem Tutorial sehen wir verschiedene Möglichkeiten, wie Sie ein Blatt mithilfe von VBA-Code löschen können. Stellen Sie sicher, dass Sie über die Registerkarte „Entwickler“ im Menüband verfügen. Von hier aus können Sie auf den visuellen Basiseditor zugreifen .
Löschen Sie ein Blatt anhand seines Namens
Jedes Blatt hat einen Namen und Sie können den Schreibcode verwenden, um ein Blatt unter Verwendung des Namens zu löschen. Nehmen wir also an, Sie möchten das Arbeitsblatt „Daten“ löschen. Der Code wäre:
Sub vba_delete_sheet() Sheets("Data").Delete End Sub
Ein Blatt ohne Vorwarnung löschen (Eingabeaufforderung)
Wenn Sie ein Arbeitsblatt löschen, zeigt Excel eine Meldung an, um zu bestätigen, ob Sie es löschen oder abbrechen möchten. Und wenn Sie VBA-Code verwenden, erledigt Excel dies in diesem Fall auch.
Um dieses Problem zu beheben, können Sie die Bildschirmaktualisierung deaktivieren, um ein Blatt zu löschen, und es dann aktivieren.
Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
Name des Blatts einer Zelle
Nehmen wir nun an, Sie möchten einen Zellenwert verwenden, um den Arbeitsblattnamen zu verwenden. In diesem Fall müssen Sie dazu das VBA-Range-Objekt verwenden.
Blatt anhand der Blattnummer löschen
Das ist richtig. Zum Löschen können Sie die Blattnummer verwenden. Hier ist der Code.
Sub vba_delete_sheet() Sheets(1).Delete End Sub
Aktives Blatt löschen
Um das aktive Blatt zu löschen, können Sie das Objekt „ActiveSheet“ verwenden, anstatt den Blattnamen zur Angabe des Blattes zu verwenden.
ActiveSheet.Delete
Wie gesagt, dadurch wird das aktive Blatt gelöscht und Sie können es aktivieren, bevor Sie es löschen. Aber das ist natürlich nicht nötig, denn Sie können auf ein Blatt verweisen und es löschen, wie wir am Anfang dieses Tutorials gesehen haben.
Überprüfen Sie, ob das Blatt vorhanden ist, bevor Sie es löschen
Sie können Code auch so schreiben, dass er prüft, ob das Blatt vorhanden ist oder nicht, und es dann löscht.
Sub check_sheet_delete() Dim ws As Worksheet Dim mySheet As Variant mySheet = InputBox("enter sheet name") Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
In diesem Code haben Sie FOR EACH , um alle Arbeitsblätter zu durchlaufen. Und dann eine WENN-ANWEISUNG, um das Blatt zu löschen, wenn sein Name mit dem Namen übereinstimmt, den Sie in das Eingabefeld eingegeben haben.
Alle Arbeitsblätter aus der Arbeitsmappe löschen
Ich bin mir sicher, dass Sie diese Frage im Kopf haben, aber ich fürchte, es ist unmöglich, alle Arbeitsblätter in der Arbeitsmappe zu löschen. Sie haben noch mindestens ein Arbeitsblatt übrig.
Aber ich habe eine Lösung für dieses Problem gefunden. Sie können ein neues leeres Blatt einfügen und dann alle bereits vorhandenen löschen.
Hier ist der Code: Dieser Code fügt ein neues Blatt hinzu und löscht alle anderen Blätter.
Sub vba_delete_all_worksheets() Dim ws As Worksheet Dim mySheet As String mySheet = "BlankSheet-" & Format(Now, "SS") Sheets.Add.Name = mySheet Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If ws.Name <> mySheet Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub