Zeilen basierend auf Zellwert löschen oder einfügen

In diesem Tutorial wird gezeigt, wie Sie Zeilen basierend auf Zellwerten löschen oder einfügen.

Zeile basierend auf Zellenwert löschen

Dies durchläuft einen Bereich und löscht Zeilen, wenn Spalte A "Löschen" sagt.

1234567891011121314151617181920 Unter DeleteRowsBasedonCellValue()'Variablen deklarierenDim LastRow As Long, FirstRow As LongDim Row As LongMit ActiveSheet'Erste und letzte Zeile definierenErste Reihe = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop durch Zeilen (von unten nach oben)For Row = LastRow Zu FirstRow Schritt -1If .Range("A" & Row).Value = "delete" Then.Range("A" & Zeile).EntireRow.DeleteEnde WennNächste ReiheEnde mitEnd Sub

Wir müssen die Schleife mit der unteren Zeile beginnen, da das Löschen einer Zeile die Daten verschiebt und Zeilen überspringt, wenn Sie eine Schleife von oben nach unten durchführen.

Beachten Sie auch, dass wir, anstatt die letzte Zeile manuell einzugeben, die zuletzt verwendete Zeile berechnen.

Zeile löschen – basierend auf Filter

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

12345678910111213141516171819202122232425 Unter FilterAndDeleteRows()'Ws-Variable deklarierenDim ws als ArbeitsblattSet ws = ActiveSheet'Vorhandene Filter zurücksetzenBei Fehler Fortsetzen als nächstesws.ShowAllDataBei Fehler GoTo 0'Filter anwendenws.Range("a1:d100").AutoFilter Field:=1, Criteria1:="delete"'Zeilen löschenApplication.DisplayAlerts = Falsews.Range("a1:d100").SpecialCells(xlCellTypeVisible).LöschenApplication.DisplayAlerts = True'Filter löschenBei Fehler Fortsetzen als nächstesws.ShowAllDataBei Fehler GoTo 0End Sub

Zeile basierend auf Zellenkriterien löschen

Dies durchläuft einen Bereich und löscht Zeilen, wenn die Zelle in Spalte A bestimmte Kriterien erfüllt (< 0):

1234567891011121314151617181920 Unter DeleteRowsBasedonCellValue()'Variablen deklarierenDim LastRow As Long, FirstRow As LongDim Row As LongMit ActiveSheet'Erste und letzte Zeile definierenErste Reihe = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop durch Zeilen (von unten nach oben)For Row = LastRow Zu FirstRow Schritt -1Wenn .Range("A" & Zeile).Wert < 0 Then.Range("A" & Zeile).EntireRow.DeleteEnde WennNächste ReiheEnde mitEnd Sub

VBA-Programmierung | Code Generator arbeitet für Sie!

Zeile löschen, wenn Zelle leer ist

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

1234567891011121314151617181920 Unter DeleteRowsBasedonCellValue()'Variablen deklarierenDim LastRow so lang, FirstRow so langDim Row As LongMit ActiveSheet'Erste und letzte Zeile definierenErste Reihe = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop durch Zeilen (von unten nach oben)For Row = LastRow Zu FirstRow Schritt -1If .Range("A" & Row).Value = "" Then.Range("A" & Zeile).EntireRow.DeleteEnde WennNächste ReiheEnde mitEnd Sub

Leere Zeile löschen

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

1234567891011121314151617181920 Unter LöschenBlankRows()'Variablen deklarierenDim LastRow so lang, FirstRow so langDim Row As LongMit ActiveSheet'Erste und letzte Zeile definierenErste Reihe = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop durch Zeilen (von unten nach oben)For Row = LastRow Zu FirstRow Schritt -1Wenn WorksheetFunction.CountA(.Rows(Row)) = 0 Then.Rows(Row).EntireRow.DeleteEnde WennNächste ReiheEnde mitEnd Sub

Zeile löschen, wenn Zelle Wert enthält

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

1234567891011121314151617181920 Unter DeleteRowsBasedonCellValue()'Variablen deklarierenDim LastRow As Long, FirstRow As LongDim Row As LongMit ActiveSheet'Erste und letzte Zeile definierenErste Reihe = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop durch Zeilen (von unten nach oben)For Row = LastRow Zu FirstRow Schritt -1Wenn .Range("A" & Zeile).Wert "" Then.Range("A" & Zeile).EntireRow.DeleteEnde WennNächste ReiheEnde mitEnd Sub

Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!

Zeile basierend auf Zellwert einfügen

Dies durchläuft einen Bereich und fügt Zeilen ein, wenn eine bestimmte Zelle in dieser Zeile "Einfügen" sagt:

1234567891011121314151617181920 Unter InsertRowsBasedonCellValue()'Variablen deklarierenDim LastRow As Long, FirstRow As LongDim Row As LongMit ActiveSheet'Erste und letzte Zeile definierenErste Reihe = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop durch Zeilen (von unten nach oben)For Row = LastRow Zu FirstRow Schritt -1If .Range("A" & Row).Value = "insert" Then.Range("A" & Zeile).EntireRow.InsertEnde WennNächste ReiheEnde mitEnd Sub
wave wave wave wave wave