Kann das Folgende geändert werden, um Folgendes zu tun: Löschen einer Zeile basierend auf einem Spaltennamen und Zellenwert? oder mehrere Spaltennamen und Zellen? Das Beispiel ist: Ich möchte alles löschen, das den Wert 'Complete' in der Spalte 'Status' hat, aber ich möchte auch 'Complete' in der Spalte 'Second Status' löschen, aber die Zeile nicht löschen, wenn ' completed "ist in der Spalte" ColumnA "und über mehrere Blätter auch ... Ich weiß, dass dies viel verlangt ..Excel-Vba-Makro zum Löschen von Zeilen oder Spalten basierend auf Zellenwert und Spaltenname
Hoffe, dass macht Sinn, und ty im Voraus!
Sub TestDeleteRows()
Dim rFind As Range
Dim rDelete As Range
Dim strSearch As String
Dim sFirstAddress As String
Dim sh As Worksheet
strSearch = "Completed"
Set rDelete = Nothing
Application.ScreenUpdating = False
For Each sh In ThisWorkbook.Sheets
With sh.Columns("A:AO")
Set rFind = .Find(strSearch, LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False)
If Not rFind Is Nothing Then
sFirstAddress = rFind.Address
Do
If rDelete Is Nothing Then
Set rDelete = rFind
Else
Set rDelete = Application.Union(rDelete, rFind)
End If
Set rFind = .FindNext(rFind)
Loop While Not rFind Is Nothing And rFind.Address <> sFirstAddress
rDelete.EntireRow.Delete
Set rDelete = Nothing
End If
End With
Next sh
Application.ScreenUpdating = False
End Sub
Hallo, ich versuchte dies und es Fehler auf der unten Zeile aus, weil „Auto Filtermethode des zulässigen Bereichs-Klasse ist fehlgeschlagen“ .AutoFilter Feld: = vCOLs (1), Criteria1: = „Completed“ –
Das ist wahrscheinlich, weil Ich musste raten, wie deine Daten aussehen. Ändern Sie einfach .CurrentRegion, um Ihren Datenblock genau wiederzugeben. – Jeeped
von "Ihrem Datenblock" meinst du einen Bereich ähnlich wie A: G zum Beispiel? –