Sub ZeileWenn()
If Cells(ActiveCell.Row, 21).Value = "Product Line" Then ActiveCell.EntireRow.Delete
End Sub
Grüße,
Sub ZeileWenn()
dim lrow as long
dim i as long
with activesheet
lrow = .cells(.rows.count,21).end(xlup).row
for i = lrow to 1 step -1 'zeilen immer rückwärts löschen
If .Cells(i, 21).Value = "Product Line" Then .rows(i).Delete
next i
end with
end sub
Das müsste funktionieren, ist aber sicherlich elendig langsam (da es alle Zeilen per Schleife durchläuft).
Sub Product_Line()
Dim ZE%, i%, z%
ZE = 1 'Zeile 1
Application.ScreenUpdating = False
For i = ActiveSheet.Cells(Rows.Count, 21).End(xlUp).Row To ZE Step -1
If ActiveSheet.Cells(i, 21).Value = "Product Line" Then
ActiveSheet.Rows(i).Delete xlUp
z = z + 1
End If
Next
MsgBox z & " Zeilen entfernt"
Err.Clear
Fehler:
If Err.Number 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Um in Excel eine Zeile zu löschen, wenn sie ein bestimmtes Wort enthält, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
ALT + F11, um den VBA-Editor zu öffnen.Einfügen und wähle Modul, um ein neues Modul zu erstellen.Sub ZeileWenn()
Dim lrow As Long
Dim i As Long
With ActiveSheet
lrow = .Cells(.Rows.Count, 21).End(xlUp).Row
For i = lrow To 1 Step -1 ' Zeilen rückwärts löschen
If .Cells(i, 21).Value = "Product Line" Then .Rows(i).Delete
Next i
End With
End Sub
ALT + F8 drückst und das Makro auswählst.Dieser Code durchsucht alle Zeilen in Spalte U (Spalte 21) und löscht jede Zeile, die "Product Line" enthält.
Fehler 1: "Laufzeitfehler 1004: Das Löschen der Zeilen ist nicht möglich."
Fehler 2: "Das Makro wird nicht gefunden."
Es gibt auch andere Methoden, um in Excel Zeilen zu löschen, die ein bestimmtes Wort enthalten. Eine Möglichkeit ist die Verwendung von Autofilter:
Diese Methode ist oft schneller, insbesondere bei großen Datenmengen.
Beispiel 1: Löschen von Zeilen mit dem Wort "Produkt".
Verwende den oben genannten VBA-Code, um alle Zeilen zu löschen, die in Spalte U das Wort "Produkt" enthalten.
Beispiel 2: Löschen von Zeilen, die einen bestimmten Wert haben.
Wenn Du beispielsweise alle Zeilen löschen möchtest, in denen die Zelle in Spalte A den Wert "X" enthält, kannst Du den Code entsprechend anpassen:
Sub ZeileMitWertLöschen()
Dim lrow As Long
Dim i As Long
With ActiveSheet
lrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = lrow To 1 Step -1
If .Cells(i, 1).Value = "X" Then .Rows(i).Delete
Next i
End With
End Sub
Verwende Application.ScreenUpdating = False: Dies kann die Ausführung des Makros beschleunigen, da der Bildschirm nicht ständig aktualisiert wird.
Sammle zu löschende Zeilen: Du kannst die zu löschenden Zeilen in einer Union-Variable sammeln und sie dann auf einmal löschen, was die Geschwindigkeit erhöht.
Dim rngDelete As Range
If rngDelete Is Nothing Then
Set rngDelete = .Rows(i)
Else
Set rngDelete = Union(rngDelete, .Rows(i))
End If
1. Frage Wie kann ich mehrere Wörter gleichzeitig überprüfen und die entsprechenden Zeilen löschen?
Antwort
Du kannst die If-Bedingung erweitern, um mehrere Wörter zu überprüfen. Zum Beispiel:
If .Cells(i, 21).Value = "Product Line" Or .Cells(i, 21).Value = "Another Word" Then .Rows(i).Delete
2. Frage Funktioniert dieser Code auch in Excel Online?
Antwort
Nein, VBA ist nicht in Excel Online verfügbar. Du musst die Desktop-Version von Excel verwenden, um diesen Code auszuführen.