
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 ws
anstelle von verwenden ActiveSheet
.