2015-09-25 45 views
1

我使用以下代码通过查找包含在多个参考单元相同的值应用一个自动筛选对其中一列的范围和滤波:引用多个小区VBA自动过滤

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”

有什么建议?由于

+0

你的值过滤该至少匹配C,D,E2中的一个或者必须满足所有三个的值? – Verzweifler

+0

Hi @Verzweifler我正在寻找匹配C2,D2,E2中至少一个的值 – JS142

+1

请尝试在您的呼叫中添加运营商:= xlFilterValues',看看是否有效! – Verzweifler

回答

1

为了把答案在此:你想给个说法Operator:=xlFilterValues添加到您的通话,所以它看起来就像这样:

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

[B6:N9000].AutoFilter Field:=2, _ 
    Criteria1:=Array([C2].Value, [D2].Value, [E2].Value), Operator:=xlFilterValues 
+0

@Vasily尽管[B6:N9000]是一个很好的(也是较短的)参考范围的方法,但我不想将“VBA相当新颖”的人与[Evaluate Command] /www.ozgrid.com/forum/showthread.php?t=52372);-) – Verzweifler

+0

感谢您的帮助球员。不幸的是,我得到了一个“编译错误:预期:声明结束”,它突出显示了我的代码中的'Operator' – JS142

+0

哦,darn - 我们忘记了operator:= xlFilterValues之前的逗号,请参阅已编辑的文章。请再试一次:-) – Verzweifler