Ich habe den folgenden Code gefunden und geändert, um alle Zeilen zu entfernen, die in Spalte F nicht „NHO_Global“ enthalten, aber er löscht alles (die Kopfzeile bleibt jedoch übrig).
Was habe ich falsch gemacht und wie kann ich es beheben? Ich muss nur die Zeilen belassen, die in Spalte F „NHO_Global“ enthalten (einfaches Filtern funktioniert für meine Zwecke nicht – sie müssen gelöscht werden).
Sub KeepOnlyNHOGlobal()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Set ws = ActiveWorkbook.Sheets("NHO_Global")
lastRow = ws.Range("F" & ws.Rows.Count).End(xlUp).Row
Set rng = ws.Range("F1:F" & lastRow)
'Filter and delete all but the header row
With rng
.AutoFilter Field:=1, Criteria1:="<>NHO_GLOBAL"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
'Turn off the filters
ws.AutoFilterMode = False
End Sub
UPDATE: Es stellte sich heraus, dass das Problem darin bestand, dass Filter aktiviert waren (auch wenn keine angewendet wurden). Durch das Deaktivieren der Filter konnte der Code wie erwartet ausgeführt werden.