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.