2017-01-19 6 views
1

私はここ数日間、これに対する答えを探しましたが、クエリのすべての側面を参照するものは見つかりませんでした。私はここの誰かが私を助けることができる/正しい方向に私を指すことを望んでいる!複数の連続しないセルの値を使用して別のワークシートのデータをフィルタリングする

基本的には、1つのブック内の2つの異なるシートに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つの店舗を選択する必要がある場合の解決策にすぎません。連続していないセルを選択する必要があるのですが、どうすればこの問題を回避できますか?

ご協力いただければ幸いです!

答えて

1

私のやり方は、複数の選択肢を処理することです。コードは以下のようになります(TblCustomerはあなたの "Table1"です):

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

関連する問題