Страницы: 1
RSS
Макрос. Фильтрация всех значений, которые не равны значениям переменной
 

Здравствуйте!

У меня есть переменная param, которая может принимать несколько любых значений (например: «ааа, ввв» или «111, 222, 333, 444» и т.д.  - разные варианты)

Через автофильтр мне необходимо отобрать все значения, которые не равны значениям переменной.

          param = Split(Cells(1, 3).Value, ",")    ‘извлекаю значения в переменную из ячейки

          ActiveSheet.Rows(1).AutoFilter Field:=2, Criteria1:="<>" & param, Operator:=xlFilterValues 'не работает

Как можно это реализовать?

Изменено: Мария - 30.04.2021 11:33:12
 
Можно скрывать строки макросом
Код
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

Или можно во вспомогательный столбец вывести формулой ИСТИНА/ЛОЖЬ, и по нему фильтровать.
 
Код
ar = Array("111", "222", "333", "444")
ActiveSheet.Rows(1).AutoFilter Field:=2, Criteria1:=ar, Operator:=xlFilterValues
 
Скрывать строки не смогу применить, т.к. далее идет очистка диапазона и очищаются данные и в скрытых строках. С дополнительным столбцом интересная идея, попробую такой вариант, спасибо)
Изменено: Мария - 30.04.2021 18:12:46
 
здесь ведь макрос выбирает эти значения)) а нужно отобрать все, кроме этих...
Изменено: Мария - 30.04.2021 18:13:05
 
Значит пишите код, который добавит в массив все значения, окромя..
 
Мария, вернитесь, приведите в порядок сообщения. Перед этим неплохо бы почитать, что такое "цитирование", когда и для чего применяется
Страницы: 1
Наверх