Использование vba для автофильтрации одного столбца со значениями из другого столбца на другом листе - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужно, чтобы VBA взял значения из столбца A в «Final_Sheet» и отфильтровал по этим значениям в столбце A листа «SIS_Case_Contacts».

Sub filter()
Dim lastRowSISCaseContacts As Long
Dim lastRowFinalSheet As Long
Dim ws As Worksheet
Set ws = Sheets("SIS_Case_Contacts")

With Sheets("SIS_Case_Contacts")
    lastRowSISCaseContacts = .Range("A" & .Rows.Count).End(xlUp).Row
End With

With Sheets("Final_Sheet")
    lastRowFinalSheet = .Range("A" & .Rows.Count).End(xlUp).Row
End With

    ws.Range("A2:A" & lastRowSISCaseContacts).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Sheets("Final_Sheet").Range("A2:A" & lastRowFinalSheet), Unique:=False
End Sub

Это дает мне время выполнения ошибка '1004': сбой метода Advancedfilter класса Range.

1 Ответ

0 голосов
/ 13 апреля 2020

AdvancedFilter вместо AutoFilter позволит вам использовать значения из одного листа в качестве критерия для фильтрации другого листа.

Примерно так может работать:

    Dim lastRowContacts As Long
    Dim lastRowFinalSheet As Long

    With Sheets("Contacts")
        lastRowContacts = .Range("A" & .Rows.Count).End(xlUp).Row
    End With

    With Sheets("Final_Sheet")
        lastRowFinalSheet = .Range("A" & .Rows.Count).End(xlUp).Row
    End With

    ws.Range("A2:A" & lastRowContacts).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Sheets("Final_Sheet").Range("A2:A" & lastRowFinalSheet), Unique:=False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...