excel过滤多个引用?

我如何设置vba代码以允许用户input多个选项,然后根据input引用单元格随附列表filter? 我试过这个,但它唯一的过滤第一个select。

我将它设置为一个工作表脚本,因此它只在该工作表上运行,并将其设置为只在用户input单元(A1,A2)更新时才运行。

然后,我试着根据A1和A2中的值获取C:D列中的列表。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'This line stops the worksheet updating on every change, it only updates when cell is touched If Intersect(Target, Range("A1:B5")) Is Nothing Then Exit Sub With Sheets("TestTab") .Range("C1:D100").AutoFilter Field:=1, Criteria1:=.Range("A1").Value, Field:=2, Criteria1:=.Range("A2").Value End With End Sub 

如果您尝试使用单元格A1或A2中的内容筛选单个列:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'This line stops the worksheet updating on every change, it only updates when cell is touched If Intersect(Target, Range("A1:A2")) Is Nothing Then Exit Sub With Sheets("TestTab") .Range("C3:D100").AutoFilter Field:=1, Criteria1:=.Range("A1").Value, Operator:=xlOr, Criteria2:=.Range("A2").Value End With End Sub 

如果您尝试过滤A1上的C列和A2上的D列:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'This line stops the worksheet updating on every change, it only updates when cell is touched If Intersect(Target, Range("A1:A2")) Is Nothing Then Exit Sub With Sheets("Sheet1") .Range("C1:D100").AutoFilter Field:=1, Criteria1:=.Range("A1").Value .Range("C1:D100").AutoFilter Field:=2, Criteria1:=.Range("A2").Value End With End Sub