Quote Originally Posted by snb View Post
Now using the UI facilities:

Autofilter:
Code:
Sub M_snb_003()
    sn = Range("B1:B3")

    With Columns(1)
        .AutoFilter 1, sn(1, 1), xlOr, sn(2, 1)
        .SpecialCells(12).Delete xlShiftUp
        .AutoFilter
        .AutoFilter 1, sn(3, 1)
        .SpecialCells(12).Delete xlShiftUp
        .AutoFilter
    End With
End Sub
and advancedfilter

Code:
Sub M_snb_004()
    Cells(1, 4).Resize(, 3) = Cells(1, 1).Value
    Cells(2, 4).Resize(, 3) = Array("<>" & Cells(1, 2), "<>" & Cells(2, 2), "<>" & Cells(3, 2))
    Columns(1).AdvancedFilter 2, Cells(1, 4).CurrentRegion, Cells(1, 12)
End Sub
The criterion range can be filled manually (or only once); after that you can test the speed of avancedfilter.
For simplicity's sake I added the code to fill the criterion range.
M_snb_003 came in at 1.15 seconds on the first test, so I did not run any more test for it. As for M_snb_004, I am not sure what should be happening, but nothing seems to happen at all. Well, that is not entirely true, the heading for the list of 10001 continent names (List 1 on my worksheet) gets repeated three times in cells D1:F1 and the cell under them show a not equal sign with one of the names from the "delete me" list, but that is all. The list of 10001 continent names does not change and no other text appears on the worksheet. It takes the code 0.03 seconds (consistently) to do only that.