Допустим, у меня есть список из 9 цветов, и я хочу отфильтровать каждое значение, которое не является "Розовым" или "Желтым". Чтобы отфильтровать этот точный список, я должен создать массив на основе моих требований, а затем отфильтровать этот массив. Таким образом, в этом примере мы перебираем все значения и, если они не розовые или желтые, мы добавляем их в массив - тогда мы фильтруем его:
Sub Test()
Dim arr As Variant
Dim i As Long, j As Long
j = 0
For i = 2 To 10
If Range("A" & i).Value <> "Pink" And Range("A" & i).Value <> "Yellow" Then
If j = 0 Then
ReDim arr(0 To 0)
arr(j) = Range("A" & i).Value
j = j + 1
Else
j = j + 1
ReDim Preserve arr(0 To j)
arr(j) = Range("A" & i).Value
End If
End If
Next i
Range("$A$1:$A$10").AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues
End Sub
Пример:
