Gesamte Zeilen basierend auf Zellenwerten löschen

Ich möchte, dass in Excel (2003) ein importierter Daten-Dump in einen Bericht umgewandelt wird. Das meiste, was ich getan habe, bestand darin, ein Makro aufzuzeichnen und den Code nach Bedarf anzupassen. Ich habe einen Punkt, der reinen Code erfordert.

Ich habe eine SORTIERTE Spalte (D), in der Arten von Vorfällen aufgelistet sind (z. B. Fahrzeugbrände, Schlaganfälle, Tierbisse usw.). Ich möchte jeden Wert in Spalte D lesen und wenn es NICHT einer von mehreren Werten ist, die wir suchen, löschen Sie die gesamte Zeile.

Ich habe mehrere Codeversionen ausprobiert (die ich online gefunden habe), und der Code, der die Ergebnisse liefert, die meinen Anforderungen am nächsten kommen, sieht folgendermaßen aus:

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

Dieser Code löscht einen Großteil der Liste (~ 100 Zeilen der ursprünglichen 168), löscht jedoch nur die Zeilen, bis der erste Wert von etwas erreicht ist, das ich möchte. Beispielsweise hat dieser aktuelle Daten-Dump keine Werte für "ILBURN" oder "SMOKEA", aber wenn das erste Auftreten von "ST3" auftritt, wird das Makro beendet. Es wird kein Fehler generiert, es scheint nur zu glauben, dass der Fehler behoben ist.

Was muss ich hinzufügen, um das Makro über die gesamte Liste aufzurufen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage