[英]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.
顺便说一下,Range不需要相同。
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.