Gefilterte Zeilen in Excel per VBA löschen
Schritt-für-Schritt-Anleitung
Um gefilterte Zeilen in Excel per VBA zu löschen, kannst du folgendes Makro verwenden. Dieses Vorgehen funktioniert in Excel 2016 und sollte auch in anderen Versionen ähnlich umsetzbar sein.
-
Öffne deine Excel-Datei und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
-
Füge den folgenden Code in das Modul ein:
Sub DeleteFilteredRows()
Dim rng As Range
On Error Resume Next
Set rng = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If Not rng Is Nothing Then
rng.Offset(1).EntireRow.Delete
End If
On Error GoTo 0
End Sub
-
Schließe den VBA-Editor und gehe zurück zu deiner Excel-Datei.
-
Führe das Makro aus, indem du ALT + F8
drückst, das Makro DeleteFilteredRows
auswählst und auf Ausführen
klickst.
Dieses Makro löscht alle gefilterten Zeilen, wobei die Überschrift in der ersten Zeile erhalten bleibt.
Häufige Fehler und Lösungen
-
Excel Filter kann nicht gelöscht werden: Stelle sicher, dass du die richtigen Filterkriterien eingestellt hast. Überprüfe auch, ob der Autofilter aktiv ist.
-
Excel Filter lässt sich nicht entfernen: Überprüfe, ob du das richtige Blatt ausgewählt hast und ob der Autofilter aktiviert ist.
-
Excel Nullwerte löschen: Wenn du nur Zeilen mit Nullwerten in einer bestimmten Spalte löschen möchtest, nutze den folgenden Code:
Sub DeleteNullValues()
Dim i As Long
For i = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
If Cells(i, 2).Value = "" Then Rows(i).Delete
Next i
End Sub
Alternative Methoden
Falls du lieber ohne VBA arbeiten möchtest, kannst du auch die Filter-Funktion in Excel nutzen:
- Setze einen Filter in deiner Tabelle.
- Filtere die Spalte, die leere Werte enthält.
- Wähle die gefilterten Zeilen aus, klicke mit der rechten Maustaste und wähle
Zeilen löschen
.
Diese Methode ist einfach und erfordert kein Programmierwissen, eignet sich jedoch weniger für große Datenmengen.
Praktische Beispiele
Hier sind einige Beispiele, wie du gefilterte Zeilen löschen kannst:
-
Löschen von leeren Zeilen in Spalte B:
Sub DeleteEmptyRowsInColumnB()
Dim i As Long
For i = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
If IsEmpty(Cells(i, 2)) Then Cells(i, 2).EntireRow.Delete
Next i
End Sub
-
Löschen aller gefilterten Zeilen:
Sub DeleteFilteredRows()
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilter.Range.Offset(1).Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End If
End Sub
Tipps für Profis
-
Excel Filter zurücksetzen: Um alle Filter zurückzusetzen, kannst du den Befehl ActiveSheet.AutoFilterMode = False
nutzen.
-
Makro zur Automatisierung: Erstelle ein Makro, das beim Öffnen der Datei automatisch die Filter zurücksetzt und die gefilterten Zeilen löscht.
-
Verwende On Error Resume Next
: Dadurch wird der Code robuster, da er Fehler beim Ausführen ignoriert, z.B. wenn keine gefilterten Zeilen vorhanden sind.
FAQ: Häufige Fragen
1. Wie kann ich alle gefilterten Zeilen löschen, ohne die Überschrift zu entfernen?
Verwende die oben gegebenen Makros, die speziell dafür ausgelegt sind, nur die gefilterten Zeilen zu löschen und die erste Zeile (Überschrift) beizubehalten.
2. Was kann ich tun, wenn der Excel Filter nicht gelöscht werden kann?
Überprüfe die Filtereinstellungen und stelle sicher, dass du auf dem richtigen Arbeitsblatt arbeitest. Möglicherweise ist der Filter nicht richtig gesetzt.
3. Wie kann ich leere Zeilen in Excel 2016 nur gefilterte Zeilen löschen?
Nutze das Makro DeleteEmptyRowsInColumnB
, um gezielt nur die leeren Zeilen in der gewünschten Spalte zu löschen.