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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen