Exclua todas as linhas que não contenham xxxx

Exclua todas as linhas que não contenham xxxx

Encontrei e modifiquei o código abaixo para remover todas as linhas que não contêm "NHO_Global" na coluna F, mas exclui tudo (embora deixe a linha do cabeçalho).

O que fiz de errado e como posso consertar? Preciso deixar apenas as linhas que contêm "NHO_Global" na coluna F (simplesmente filtrar não funcionará para meus propósitos - elas precisam ser excluídas).

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

ATUALIZAÇÃO: acontece que ter filtros ativados (mesmo sem nenhum aplicado) era o problema. A desativação dos filtros permitiu que o código fosse executado conforme esperado.

Responder1

Tenho boas notícias. O problema está nos seus dados, não no seu código. Antes:

Antes:

insira a descrição da imagem aqui

e depois:

insira a descrição da imagem aqui

Observação:

Certifique-se de que sua colunaFos valores não são corrompidos por caracteres estranhos!

informação relacionada