簡體   English   中英

Excel:使用多個條件篩選:AutoFilter或AdvancedFilter

[英]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

AdvancedFilterRange作為條件輸入CriteriaRange ,因此您必須放置一個工作表

  • 要應用於過濾器的列標題
  • 您的標准低於相應的標題(如果您有多個列)

該范圍的每個COLUMNAND 鏈接
該范圍的每個ROW都通過OR 鏈接
所以仔細建立你的桌子!

在上面的示例代碼中,我使用了:
(假設您的列的標題是“ 要過濾的列” ):

A1 | Column To Filter On
A2 | 4*
A3 | *2TWH*
A4 | *2TER*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM