Zeilen basierend auf Zellenwert löschen oder einfügen

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Dezember 17, 2022

In diesem Tutorial zeigen wir Ihnen, wie Sie Zeilen anhand von Zellwerten löschen oder einfügen kann.

Zeile auf der Grundlage eines Zellenwerts löschen

Diese Funktion durchläuft einen Bereich und löscht Zeilen, wenn in Spalte A „Löschen“ steht.

Sub ZeilenBasierendAufZellenwertLoeschen()

'Variablen deklarieren
Dim LetzteZeile As Long, ErsteZeile As Long
Dim Row As Long

With ActiveSheet
    'Erste und letzte Zeile definieren
    ErsteZeile = 1
    LetzteZeile = .UsedRange.Rows(.UsedRange.Rows.Count).Row

    'Zeilen durchlaufen (von unten nach oben)
    For Zeile = LetzteZeile To ErsteZeile Step -1
        If .Range("A" & Zeile).Value = "Löschen" Then
            .Range("A" & Zeile).EntireRow.Delete
        End If
    Next Zeile
End With

End Sub

Wir müssen die Schleife mit der untersten Zeile beginnen, weil das Löschen einer Zeile die Daten verschiebt und Zeilen überspringt, wenn Die Schleife von oben nach unten durchläuft.

Beachten Sie auch, dass wir die letzte Zeile nicht manuell eingeben, sondern die zuletzt verwendete Zeile berechnen.

Zeile basierend auf einem Filter löschen

Im vorherigen Beispiel haben wir die Zeilen in einer Schleife durchlaufen und jede Zeile gelöscht, die die Kriterien erfüllt. Alternativ können wir auch den AutoFilter von Excel verwenden, um die Zeilen nach bestimmten Kriterien zu filtern und dann die sichtbaren Zeilen zu löschen:

Sub ZeilenFilternUndLoeschen()

    'Variable ws deklarieren
    Dim ws As Worksheet
    Set ws = ActiveSheet
    
    'Vorhandene Filter zurücksetzen
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0

    'Filter anwenden
    ws.Range("a1:d100").AutoFilter Field:=1, Criteria1:="Löschen"
    
    'Zeilen löschen
    Application.DisplayAlerts = False
    ws.Range("a1:d100").SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
    
    'Filter löschen
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
  
End Sub

Zeile anhand von Zellenkriterien löschen

Damit wird ein Bereich in einer Schleife durchlaufen, wobei Zeilen gelöscht werden, wenn die Zelle in Spalte A bestimmte Kriterien erfüllt (< 0):

Sub ZeilenBasierendAufZellenwertLoeschen()

'Variablen deklng,arieren
Dim LetzteZeile As Long, ErsteZeile As Long
Dim Row As Long

With ActiveSheet
    'Erste und letzte Zeile definieren
    ErsteZeile = 1
    LetzteZeile = .UsedRange.Rows(.UsedRange.Rows.Count).Row

    'Zeilen durchlaufen (von unten nach oben)
    For Zeile = LetzteZeile To ErsteZeile Step -1
        If .Range("A" & Zeile).Value < 0 Then
            .Range("A" & Zeile).EntireRow.Delete
        End If
    Next Zeile
End With

End Sub

Zeile löschen, wenn Zelle leer ist

Diese Funktion durchläuft einen Bereich in einer Schleife und löscht eine Zeile, wenn eine Zelle in Spalte A leer ist:

Sub ZeilenBasierendAufZellenwertLoeschen()

'Variablen deklarieren
Dim LetzteZeile As Long, ErsteZeile As Long
Dim Zeile As Long

With ActiveSheet
    'Erste und letzte Zeile definieren
    ErsteZeile = 1
    LetzteZeile = .UsedRange.Rows(.UsedRange.Rows.Count).Row

    'Zeilen durchlaufen (von unten nach oben)
    For Zeile = LetzteZeile To ErsteZeile Step -1
        If .Range("A" & Zeile).Value = "" Then
            .Range("A" & Zeile).EntireRow.Delete
        End If
    Next Zeile
End With

End Sub

Leere Zeile löschen

Wenn Sie eine Zeile löschen möchten , wenn sie komplett leer ist (Klicken Sie auf den Link für eine etwas andere Methode), können Sie alternativ diesen Code verwenden:

Sub LeereZeilenLoeschen()
 
'Variablen deklarieren
Dim LetzteZeile As Long, ErsteZeile As Long
Dim Zeile As Long
 
With ActiveSheet
    'Erste und letzte Zeile definieren
    ErsteZeile = 1
    LetzteZeile = .UsedRange.Rows(.UsedRange.Rows.Count).Row
 
    'Zeile durchlaufen (von unten nach oben)
    For Zeile = LetzteZeile To ErsteZeile Step -1
        If WorksheetFunction.CountA(.Rows(Zeile)) = 0 Then
            .Rows(Zeile).EntireRow.Delete
        End If
    Next Zeile
End With
 
End Sub

Zeile löschen, wenn eine Zelle einen Wert enthält

Dieser Code durchläuft einen Bereich und löscht eine Zeile, wenn die Zelle in Spalte A nicht leer ist:

Sub ZeilenBasierendAufZellenwertLoeschen()

'Variablen deklarieren
Dim LetzteZeile As Long, ErsteZeile As Long
Dim Zeile As Long

With ActiveSheet
    'Erste und letzte Zeile definieren
    ErsteZeile = 1
    LetzteZeile = .UsedRange.Rows(.UsedRange.Rows.Count).Row
    'Zeilen durchaufen (von unten nach oben)
    For Zeile = LetzteZeile To ErsteZeile Step -1
        If .Range("A" & Zeile).Value <>" Then
            .Range("A" & Zeile).EntireRow.Delete
        End If
    Next Zeile
End With

End Sub

Zeile basierend auf einen Zellenwert einfügen

Diese Funktion durchläuft einen Bereich in einer Schleife und fügt Zeilen ein, wenn der Wert einer bestimmten Zelle in dieser Zeile „Einfügen“ lautet:

Sub ZeilenBasierendAufZellenwertEinfuegen()

'Variablen deklarieren
Dim LetzteZeile As Long, ErsteZeile As Long
Dim Zeile As Long

With ActiveSheet
    'Erste und letzte Zeile definieren
    ErsteZeile = 1
    LetzteZeile = .UsedRange.Rows(.UsedRange.Rows.Count).Row

    'Zeilen durchlaufen (von unten nach oben)
    For Zeile = LetzteZeile To ErsteZeile Step -1
        If .Range("A" & Row).Value = "Einfügen" Then
            .Range("A" & Row).EntireRow.Insert
        End If
    Next Zeile
End With

End Sub
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples