简体   繁体   English

Excel VBA中的多重过滤?

[英]Multiple Filtering in Excel VBA?

I'm trying to filter my data using 2 columns and 2 different filter requirements. 我正在尝试使用2列和2个不同的过滤器要求来过滤我的数据。

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

If I filter by yes then it work and if I filter by Low it also works. 如果我按“是”进行过滤,那么它可以工作,如果我按“过滤”过滤它也可以。 However if I try and filter range K2-ZZ200 by yes and then Column E by Low it seems to hide everything. 但是,如果我尝试过滤范围K2-ZZ200为是,然后将E列过滤,它似乎隐藏了所有内容。

Any ideas? 有任何想法吗?

You have to use the same Range("$K$2:$ZZ$200") for both AutoFilter statements: 您必须为两个AutoFilter语句使用相同的Range("$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"

Also, you may need to set ActiveSheet.AutoFilterMode = True , but I'm not entirely sure. 此外,您可能需要设置ActiveSheet.AutoFilterMode = True ,但我不完全确定。

Almost. 几乎。 Managed to do this using an array. 使用数组进行管理。 The Range does not need to be the same by the way. 顺便说一下,R​​ange不需要相同。

     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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM