Как отфильтровать много критериев в VBA? - PullRequest
0 голосов
/ 10 декабря 2018

Я искал код для фильтрации критериев из списка, который мне не нужен.У меня есть код, который работает для фильтрации критериев, которые я хочу, но когда я пытаюсь изменить его, я получаю ошибку «несоответствие».

Вот мой код для фильтрации критериев, которые я не хочу.

Sub Filters()              
    Dim IntP As Worksheet 'sheet where the main table is
    Dim Param As Worksheet 'sheet where my parameters are
    Dim iRange As Range 'the range of my table
    Dim range1 As Range 'the range that contains the list I want to filter in iRange

    Set IntP = Worksheets("Internet Promotions")
    Set Param = Worksheets("Sheet1")
    Set iRange = IntP.Range("A1", ("AU" & IntP.Range("A" & Rows.Count).End(xlUp).Row)) 'range of my table
    Set range1 = Param.Range("D2", ("D" & Param.Range("D" & Rows.Count).End(xlUp).Row)) 'range of my paramters

    Dim var1 As Variant
    Dim sArray() As String
    Dim i As Long

    '---------------Filter-----------------------   
    var1 = range1.Value
    ReDim sArray(1 To UBound(var1))

    For i = 1 To (UBound(var1))
        sArray(i) = var1(i, 1)
    Next

    iRange.AutoFilter Field:=21, Criteria1:="<>" & sArray, Operator:=xlFilterValues  
End Sub

Я не понимаю, почему это не работает.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 10 декабря 2018

Попробуйте отфильтровать данные по нескольким критериям по многим полям.

См. Следующий пример.

enter image description here

Sub filter_col()

'Apply filters on two columns

With ActiveSheet.Range("B3:D6")
    .AutoFilter field:=2, Criteria1:="New-York"
    .AutoFilter field:=3, Criteria1:=">1300000"
End With

End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...