У меня есть переменная param, которая может принимать несколько любых значений (например: «ааа, ввв» или «111, 222, 333, 444» и т.д. - разные варианты)
Через автофильтр мне необходимо отобрать все значения, которые не равны значениям переменной.
param = Split(Cells(1, 3).Value, ",") ‘извлекаю значения в переменную из ячейки
ActiveSheet.Rows(1).AutoFilter Field:=2, Criteria1:="<>" & param, Operator:=xlFilterValues 'не работает
Sub myFilter()
ActiveSheet.UsedRange.EntireRow.Hidden = False
Dim param As Variant
param = Split(Cells(1, 3).Value, ",")
Dim arr As Variant
Dim y As Long
y = Cells(Rows.Count, 2).End(xlUp).Row
arr = Range(Cells(1, 2), Cells(y, 2 - (y = 1)))
Dim v As Variant
For y = 2 To UBound(arr, 1)
For Each v In param
If arr(y, 1) = v Then
Rows(y).Hidden = True
Exit For
End If
Next
Next
End Sub
Или можно во вспомогательный столбец вывести формулой ИСТИНА/ЛОЖЬ, и по нему фильтровать.
Скрывать строки не смогу применить, т.к. далее идет очистка диапазона и очищаются данные и в скрытых строках. С дополнительным столбцом интересная идея, попробую такой вариант, спасибо)