Excel VBA中的多重过滤?

Excel VBA中的多重过滤?,excel,vba,Excel,Vba,我尝试使用两列和两种不同的筛选要求筛选数据 ActiveSheet.AutoFilterMode = False ActiveSheet.Range("$K$2:$ZZ$200").AutoFilter Field:=5, Criteria1:="yes" ActiveSheet.Range("E:E").AutoFilter Field:=1, Criteria1:="Low" 如果我按“是”进行过滤,则它工作;如果我按“低”进行过滤,则它也工作。然而,如果我试着用y

我尝试使用两列和两种不同的筛选要求筛选数据

    ActiveSheet.AutoFilterMode = False
    ActiveSheet.Range("$K$2:$ZZ$200").AutoFilter Field:=5, Criteria1:="yes"
    ActiveSheet.Range("E:E").AutoFilter Field:=1, Criteria1:="Low"
如果我按“是”进行过滤,则它工作;如果我按“低”进行过滤,则它也工作。然而,如果我试着用yes过滤K2-ZZ200范围,然后用Low过滤E列,它似乎隐藏了一切


有什么想法吗?

对于这两种说法,你必须使用相同的
范围(“$K$2:$ZZ$200”)

' Column A = Field 1
ActiveSheet.Range("$K$2:$ZZ$200").AutoFilter Field:=1, Criteria1:="yes"
' Column E = Field 5
ActiveSheet.Range("$K$2:$ZZ$200").AutoFilter Field:=5, Criteria1:="Low"

另外,您可能需要设置
ActiveSheet.AutoFilterMode=True
,但我不能完全确定。

几乎可以。使用数组成功地实现了这一点。顺便说一下,范围不需要相同

     ActiveSheet.AutoFilterMode = False
    ActiveSheet.Range("$E$2:$ZZ$200").AutoFilter Field:=nice, Criteria1:="yes"
    ActiveSheet.Range("$E$2:$ZZ$200").AutoFilter Field:=1, Criteria1:=Array( _
    "Filter 1", ""Filter 2", "On "Filter 3", ""Filter 4", ""Filter 5"), Operator:=xlFilterValues

我想您可能还必须确保字段编号不同,但我可能错了。(在他的问题中,他们是一样的。)好的,我已经更新了,但仍然没有乐趣。我需要在开始时将筛选模式设置为false,以便它删除所有现有筛选,然后执行筛选您可能应该尝试
录制宏
,然后重复步骤筛选工作表。然后检查生成的代码,看看缺少什么。然而,它通常会生成难看的代码——只需将代码用作参考。例如,在Office 2007/2010中,您可能需要在AutoFilter
操作符中添加一个参数:=xlFilterValues
(请参阅)。