La macro sí funciona, hice la prueba en el archivo que me enviaste y sí borra las filas.
Le hice un cambio a la macro, para que se más rápida y le agregué el dato "S.T".
Sub EliminarFila()
'Por.Dante Amor
Application.ScreenUpdating = False
cond = Array("C3", "C8", "C22", "C21", "S.T", "C5", "C25", "C13", "C14", "C16", "C17", "C12", "C20", "C15", "C18")
For i = Range("AP" & Rows.Count).End(xlUp).Row To 1 Step -1
For j = LBound(cond) To UBound(cond)
If Cells(i, "AP") = cond(j) Then
Rows(i).Delete
Exit For
End If
Next
Next
MsgBox "Terminado"
End Sub
Si tienes muchos registros, la macro va a hacer un poco lenta porque tiene que revisar registro por registro y dato por dato.
Te anexo otra macro para borrar más rápido.
Sub Macro1()
'Por.Dante Amor
Set h1 = Sheets("Hoja2")
Set h2 = Sheets("criterios")
On Error Resume Next
If h1.FilterMode Then h1.ShowAllData
On Error GoTo 0
u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
h1.Range("A1:AP" & u1).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=h2.Range("A1:A" & u2), Unique:=False
u3 = h1.Range("A" & Rows.Count).End(xlUp).Row
If u3 > 1 Then
h1.Rows(2 & ":" & u1).Delete
End If
On Error Resume Next
If h1.FilterMode Then h1.ShowAllData
End Sub
Tienes que crear una hoja llamada "criterios" y poner en la columna "A" los criterios.
En el encabezado de la columna "A" tienes que poner el mismo que tienes en la columna "AP" = "CATEGORIA2"
Cualquiera de las 2 macro funciona. También te envié el archivo con la hoja "criterios" y la macro en el módulo2.
Saludos. Dante Amor