2015-09-02 156 views
1

我試圖將代碼添加到宏Excel宏如果特定列包含幾個字符串中的一個自動篩選依據。下面是我做了2串(R爲範圍):多個字符串自動篩選

R.AutoFilter Field:=ProductTypeCol, _ 
    Criteria1:=Array("*maintenance*", "*services*"), _ 
    Operator:=xlFilterValues 

這個工程完全按照我的預期,並顯示每個字符串一些行。然後我添加了第三個字符串並重新執行宏:

R.AutoFilter Field:=ProductTypeCol, _ 
    Criteria1:=Array("*maintenance*", "*services*", "*training*"), _ 
    Operator:=xlFilterValues 

而不是顯示一些額外的行,這神祕地導致根本沒有行。

因此,在尋找真相,我刪除了所有三個串中的星號,得到了什麼我的預期:行,其中的價值正是這些字符串之一。 不幸的是,我真的需要這些星號。

我在這裏錯過了什麼嗎?

回答

1

你不能用通配符過濾兩個以上的條件。如果你想這樣做,你必須添加一個臨時幫助者列,或者使用循環或其他解決方法進行過濾。

+0

謝謝。 Bummer,但現在我知道我必須與之合作。 – RonR

0

據我所知,你不能在同一列由兩個以上的標準通配符過濾。我想你需要做的就是將過濾需求進入由公式沿線的人口附加列:

假設ProductTypeCol是A列

=SUM(COUNTIF($A2,{"=*maintenance*","=*services*","=*training*"}))>0 

然後在此列的篩選在Trues(如果需要的話,您可以擴展到廣大的搜索項)