VBA-Excel-Makro: Beibehalten und Löschen von Blättern basierend auf Daten in Zellen

VBA-Excel-Makro: Beibehalten und Löschen von Blättern basierend auf Daten in Zellen

Das ist vielleicht eine sehr einfache Frage, aber ich kann sie nicht beantworten. Ich führe ein Makro aus, das 13 Tabellenblätter erstellt. Von diesen 13 Tabellenblättern enthalten mehrere keine Daten in Spalte A2. Ich möchte in der Lage sein, ein Makro in VBA zu erstellen, das alle Tabellenblätter löscht, die keine Daten in Spalte A2 enthalten, aber die Tabellenblätter behält, die Daten in Spalte A2 enthalten. Ich habe Folgendes versucht:

Sub Delete()
Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    Application.DisplayAlerts = False
      If LenB(ActiveSheet.Range("A2")) = 0 Then ActiveSheet.Delete
    Application.DisplayAlerts = True
  Next ws
End Sub

Dadurch wird das aktive Blatt gelöscht, wenn A2 nichts enthält. Das ist für mich ein gewisser Fortschritt, es erfolgt jedoch nicht automatisch ein Wechsel zum nächsten Blatt.

Antwort1

Ihr Code ist nicht konsistent. Sie sollten überall wsanstelle von verwenden ActiveSheet.

verwandte Informationen