Eliminar filas enteras basadas en valores de celda

Quiero en Excel (2003) tomar un volcado de datos importados y formatearlo en un informe. La mayor parte de lo que he hecho ha implicado grabar una macro y luego personalizar el código donde sea necesario. Tengo un lugar que requiere código puro.

Tengo una columna CLASIFICADA (D) que enumera los tipos de incidencias (por ejemplo: incendios de vehículos, golpes, mordeduras de animales, etc.). Me gustaría leer cada valor en la columna D y si NO es uno de los varios valores que estamos buscando, elimine toda la fila.

He probado varias versiones de código (que he encontrado en línea) y el código que produce los resultados más cercanos a lo que necesito se ve así:

Range("D:D").Select
Dim workrange As Range
Dim cell As Range
Set workrange = Intersect(Selection, ActiveSheet.UsedRange)
For Each cell In workrange
    If ActiveCell.Value <> "VFIRE" _
        And ActiveCell.Value <> "ILBURN" _
        And ActiveCell.Value <> "SMOKEA" _
        And ActiveCell.Value <> "ST3" _
        And ActiveCell.Value <> "TA1PED" _
        And ActiveCell.Value <> "UN1" _
            Then ActiveCell.EntireRow.Delete
Next cell
End Sub

Este código elimina la mayoría de la lista (~ 100 filas de las 168 originales), pero solo elimina las filas hasta que alcanza el primer valor de algo que quiero. Por ejemplo, este volcado de datos actual no tiene ningún valor para "ILBURN" o "SMOKEA", pero cuando ocurre la primera aparición de "ST3" la macro se detiene. No se genera ningún error, solo parece pensar que está hecho.

¿Qué debo agregar para invocar la macro en toda la lista?

Respuestas a la pregunta(3)

Su respuesta a la pregunta