刪除所有不包含 xxxx 的行

刪除所有不包含 xxxx 的行

我找到並修改了下面的程式碼以刪除 F 列中不包含“NHO_Global”的所有行,但它刪除了所有內容(不過,它確實保留了標題行)。

我做錯了什麼、如何解決?我需要它只保留 F 列中包含“NHO_Global”的行(簡單過濾對我的目的不起作用 - 它們需要被刪除)。

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

更新:事實證明,打開過濾器(即使沒有應用)是問題所在。關閉過濾器可以讓程式碼如預期運作。

答案1

我有好消息。問題出在您的資料中,而不是您的程式碼。前:

前:

在此輸入影像描述

之後:

在此輸入影像描述

筆記:

確保您的專欄F值不會被無關字元破壞!

相關內容