2017-01-19 2 views
1

Я искал последние несколько дней, чтобы найти ответ на этот вопрос, но не нашел ничего, что относится ко всем аспектам моего запроса. Я надеюсь, что кто-то здесь может мне помочь/указать мне в правильном направлении!Фильтрация данных на другом листе с использованием нескольких значений смежных ячеек

По существу, у меня есть список магазинов и список клиентов (с магазином, который посетил каждый посетитель), в двух разных листах в одной книге, содержащей отношения от одного до многих. Я хочу, чтобы иметь возможность фильтровать список клиентов динамически путем выбора магазинов в списке магазина, хотя бы только удалось отфильтровать по одному значению (магазин) до сих пор, используя приведенный ниже код:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
If ActiveCell.Column = 1 Then 
Sheet2.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1:=ActiveCell.Value 
Sheet2.Activate 
End If 
End Sub 

Хотя это, конечно, только решение, когда нужно выбрать один магазин. Должен ли я сделать несмежный выбор ячеек, как бы я обошел это?

Любая помощь была бы принята с благодарностью!

ответ

1

Мой способ сделать это - обработать несколько вариантов. Код выглядит, как показано ниже (TblCustomer - это ваша «Таблица1»):

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    Dim rgSel As Range, rgCell As Range 
    Dim cellsFound As Integer 
    Dim filters() As String 

    Set rgSel = Selection 
    cellsFound = 0 

    For Each rgCell In rgSel 

    If rgCell.Column = 1 Then 
     cellsFound = cellsFound + 1 
     ReDim Preserve filters(cellsFound) 
     filters(cellsFound - 1) = rgCell 
    End If 

    Next rgCell 

    If cellsFound > 0 Then 
    Sheet2.ListObjects("TblCustomers").Range.AutoFilter Field:=1, Criteria1:=filters, Operator:=xlFilterValues 

    'you may need to select the customer sheet manually after you made your multiple selection, 
    'otherwise you'll just jump to it avery time you change the selection 
    'Sheet2.Activate 

    End If 

End Sub 
+0

Вы абсолютная легенда, спасибо! – jm12122

Смежные вопросы