我希望使用AutoFilter
排除七个不同的值。
我尝试了以下代码,但它出错了:
.AutoFilter Field:=12, Criteria1:= _
"<>BESTPAYMENTS", Operator:=xlAnd, Criteria2:="<>IGL", Operator:=xlAnd, Criteria3:="<>MGBILLPAY", Operator:=xlAnd, Criteria4:="<>NDPL", Operator:=xlAnd, Criteria5:="<>RBPAYMENTS", Operator:=xlAnd, Criteria6:="<>TABCAB", Operator:=xlAnd, Criteria7:="<>TDNPAY"
有人可以帮忙吗?
答案 0 :(得分:2)
AutoFilter
方法仅支持两个Criteria
。
为包含选择多个值非常容易,例如做类似的事情:
.AutoFilter Field:=12, _
Criteria1:=Array("first_value", _
"another_value", _
"something else", _
"and yet another one"), _
Operator:=xlFilterValues
但是,排除值要困难得多,因为数组中元素之间使用了隐式Or
。
我相信您需要使用类似于以下内容的代码来实现您的目标:
Dim r As Range
For Each r In .Columns(12).Cells
If r.Row <> .Row Then ' to avoid processing the header row
Select Case r.Value
Case "BESTPAYMENTS", _
"IGL", _
"MGBILLPAY", _
"NDPL", _
"RBPAYMENTS", _
"TABCAB", _
"TDNPAY"
r.EntireRow.Hidden = True
Case Else
r.EntireRow.Hidden = False
End Select
End If
Next
不幸的是,这只是隐藏和取消隐藏行,而不是应用真正的过滤器,但它可能是您所希望的最好的。