If you want to use AutoFilter and exclude several values, create an array that includes only the "good" values. Say we start with:

and we want to exclude the Stooges. We need to create a "Stooge-free" array":
Sub NoStooges()
Dim rng As Range, c As Collection
Dim r As Range, v As String, n As Long
Dim i As Long, arr
Set rng = Range("A2:A20")
Set c = New Collection
For Each r In rng
v = r.Value
If v <> "Larry" And v <> "Moe" And v <> "Curley" Then
On Error Resume Next
c.Add v, CStr(v)
On Error GoTo 0
End If
Next r
n = c.Count
ReDim arr(1 To n)
For i = 1 To n
arr(i) = c.Item(i)
Next i
With ActiveSheet
If .FilterMode Then Cells.AutoFilter
.Range("$A$1:$A$20").AutoFilter
.Range("$A$1:$A$20").AutoFilter Field:=1, Criteria1:=(arr), Operator:=xlFilterValues
End With
End Sub
The array arr
and its associated Collection have only three elements {a, b, c} . The code produces:
