引用多个单元格VBA自动筛选

引用多个单元格VBA自动筛选,vba,excel,Vba,Excel,我使用以下代码对一个范围应用自动筛选,并通过查找多个引用单元格中包含的相同值对其中一列进行筛选: Sub filter() Range("B6:N9000").AutoFilter Field:=2, Criteria1:=Array(Range("C2").Value, Range("D2").Value, Range("E2").Value ) End Sub 然而,问题是过滤器仅应用代码中引用的最后一个单元格,即在上面,它只查找“E2”,而不是“C2”和“D2”和“E2” 有什么建议

我使用以下代码对一个范围应用自动筛选,并通过查找多个引用单元格中包含的相同值对其中一列进行筛选:

Sub filter()

Range("B6:N9000").AutoFilter Field:=2, Criteria1:=Array(Range("C2").Value, Range("D2").Value, Range("E2").Value )

End Sub
然而,问题是过滤器仅应用代码中引用的最后一个单元格,即在上面,它只查找“E2”,而不是“C2”和“D2”和“E2”


有什么建议吗?感谢在下面给出答案:您希望将参数
Operator:=xlFilterValues
添加到您的呼叫中,因此它将如下所示:

Range("B6:N9000").AutoFilter Field:=2, Criteria1:=Array(Range("C2").Value, _
    Range("D2").Value, Range("E2").Value), Operator:=xlFilterValues


您正在筛选至少与C、D、E2中的一个匹配的值,还是筛选必须满足所有三个条件的值?您好@Verzweifler我正在搜索至少与C2、D2、E2中的一个匹配的值请尝试将
运算符:=xlFilterValues
添加到您的调用中,看看是否有效@JS142-我在谷歌上搜索了
操作符:=xlFilterValues
,并在比键入这句话所花费的时间更短的时间内得到了答案。感谢@Jeeped的建设性评论。祝你愉快day@Vasily虽然[B6:N9000]是一种很好(而且更短)的参考范围的方法,但我不想把“对VBA相当陌生”的人和;-)混淆谢谢你们的帮助。不幸的是,我得到了一个“编译错误:预期:语句结束”,并且它在我的代码中突出显示了“运算符”哦,该死-我们忘记了
运算符:=xlFilterValues
之前的逗号,请参阅编辑后的文章。请再试一次:-)完美!非常感谢:)@JS142如果这个答案解决了您的问题,您需要接受它,有类似问题的用户将看到这是一个解决方案
[B6:N9000].AutoFilter Field:=2, _
    Criteria1:=Array([C2].Value, [D2].Value, [E2].Value), Operator:=xlFilterValues