[英]Excel : filter with Multiple Criteria : AutoFilter or AdvancedFilter
我正在嘗試創建一個將執行以下操作的過濾器
以“4”開頭或包含“2TWH”或包含“2TER”
我相信它會變成這樣
ActiveSheet.Range("$A$5:$H$10").AutoFilter Field:=2, Criteria1:="=4*", _
Operator:=xlOr, Criteria2:="=*2TWH*"
但我需要以某種方式對=“= 2TER ”有一個標准3
我做了一些谷歌搜索,看到你可以將值存儲到一個數組,然后調用數組值,但我無法以可用的方式將它們放入數組。
有人能為此提供一些幫助嗎?
這應該做的伎倆:
ActiveSheet.Range("$A$5:$H$10").AutoFilter Field:=2, Criteria1:="=4*", _
Operator:=xlOr, Criteria2:=Array("*2TWH*","*2TER*")
這不會引起任何錯誤,但......
它只需要2個標准,因為有通配符( *
)。
這是數組中的最后一個條件(這里是*2TER*
)
理想情況下,這會很好,因為它適用於常量 ,
但因為你使用WildCards( *
)它只支持2個標准......:/
ActiveSheet.Range("$A$1:$H$10").AutoFilter Field:=2, Criteria1:=Array("*2TWH*", "*2TER*", "4*"), _
Operator:=xlFilterValues
所以你必須使用AdvancedFilter
:
With ActiveSheet
'Const xlFilterInPlace = 1
.Range("$A$5:$H$10").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=WsFilterSettings.Range("A1:A4")
End With 'ActiveSheet
AdvancedFilter
將Range作為條件輸入 , CriteriaRange
,因此您必須放置一個工作表 :
該范圍的每個COLUMN由AND 鏈接
該范圍的每個ROW都通過OR 鏈接
所以仔細建立你的桌子!
在上面的示例代碼中,我使用了:
(假設您的列的標題是“ 要過濾的列” ):
A1 | Column To Filter On
A2 | 4*
A3 | *2TWH*
A4 | *2TER*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.