This version should accomplish the same thing without having to loop through every row one at a time. We're inserting a set of "key" formulas in an empty column and running an AutoFilter on the data, deleting the matching rows all at once.
This macro assumes the DATA starts at row 1. If Row1 is actually "titles" and not data, then you can delete the two lines of code marked in red:
The formula I'm inserting in an empty column is:
=IF(OR(ISNUMBER(MATCH("19. B Mis*",$B2,0)),ISNUMBER(MATCH("19. C Del*",$B2,0))),1,"x")
As you can see, rather than spelling out the whole text string, I just used the first few characters...expecting that to be enough to match accurately. If you have other cells that start with "19. B Mis" and "19. C Del" then you'll have to expand that text to more complete, I just thought it might be sufficient.
Bookmarks