Eliminar todas las filas que no contengan xxxx

Eliminar todas las filas que no contengan xxxx

Encontré y modifiqué el siguiente código para eliminar todas las filas que no contienen "NHO_Global" en la columna F, pero elimina todo (aunque deja la fila del encabezado).

¿Qué hice mal y cómo puedo solucionarlo? Necesito que deje solo las filas que contienen "NHO_Global" en la columna F (simplemente el filtrado no funcionará para mis propósitos; deben eliminarse).

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

ACTUALIZACIÓN: resulta que el problema era tener los filtros activados (incluso sin ninguno aplicado). Desactivar los filtros permitió que el código se ejecutara como se esperaba.

Respuesta1

Tengo buenas noticias. El problema está en tus datos, no en tu código. Antes:

Antes:

ingrese la descripción de la imagen aquí

y después:

ingrese la descripción de la imagen aquí

Nota:

Asegúrate de que tu columnaF¡Los valores no se corrompen por caracteres extraños!

información relacionada