Vba: so löschen sie zeilen basierend auf dem zellenwert
Sie können in VBA die folgende Syntax verwenden, um Zeilen basierend auf einem Zellenwert zu löschen:
Sub DeleteRowsByValue()
Dim ws As Worksheet
Set ws = ActiveSheet
'clear existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'filter range where column 2 in range is equal to "East"
ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
'delete rows that are visible
Application.DisplayAlerts = False
ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'remove filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
Dieses spezielle Makro löscht alle Zeilen im Bereich A1:C10 , in denen der Wert von Spalte B gleich „Is“ ist.
Dieses Makro verwendet die folgenden Schritte:
- Wenden Sie einen Filter auf A1:C10 an, um nur Zeilen anzuzeigen, deren Wert in Spalte B „Is“ ist.
- Anschließend löschen Sie alle sichtbaren Zellen.
- Entfernen Sie dann den Filter.
Dadurch werden alle Zeilen im Bereich A1:C10 gelöscht, in denen der Wert in Spalte B „Is“ ist.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Verwenden Sie VBA, um Zeilen basierend auf dem Zellenwert zu löschen
Angenommen, wir haben den folgenden Datensatz mit Informationen über verschiedene Basketballspieler:
Nehmen wir an, wir möchten jede Zeile aus dem Datensatz entfernen, in der die Spalte „Konferenz“ „Osten“ entspricht.
Dazu können wir das folgende Makro erstellen:
Sub DeleteRowsByValue()
Dim ws As Worksheet
Set ws = ActiveSheet
'clear existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'filter range where column 2 in range is equal to "East"
ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
'delete rows that are visible
Application.DisplayAlerts = False
ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'remove filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Beachten Sie, dass alle Zeilen gelöscht wurden, in denen der Wert in der Spalte „Konferenz“ „Osten“ lautete.
Hinweis : Die Zeile „Application.DisplayAlerts=False“ weist VBA an, den Vorgang zum Entfernen sichtbarer Zeilen nicht anzuzeigen, was den Vorgang beschleunigt.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:
VBA: So wenden Sie bedingte Formatierung auf Zellen an
VBA: So zählen Sie die Anzahl der Zeilen im Bereich
VBA: So zählen Sie Zellen mit bestimmtem Text