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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert