Löschen Sie alle Zeilen, die xxxx nicht enthalten

Löschen Sie alle Zeilen, die xxxx nicht enthalten

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.

Antwort1

Ich habe gute Neuigkeiten. Das Problem liegt in Ihren Daten, nicht in Ihrem Code. Vorher:

Vor:

Bildbeschreibung hier eingeben

und danach:

Bildbeschreibung hier eingeben

Notiz:

Stellen Sie sicher, dass Ihre SpalteFWerte werden nicht durch Fremdzeichen verfälscht!

verwandte Informationen