Zeilen basierend auf Zellenwert löschen oder einfügen
In this Article
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 dekl
ng,
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