2016-05-29 102 views
1

我正在使用vba在Excel 2010中自動篩選列表,並且想要根據3個或更多「開頭」條件自動篩選列表(即「a * 「,」b *「,」c *「)。不幸的是,據我所知,使用Operator:= xlOr只能有兩個「從......開始」的標準。Excel VBA自動過濾器 - 「開始」的多個標準

VBA Autofilter (Text Filters) With Multiple Criteria of "begin with"的接受答案看起來像會起作用。然而,循環遍歷列表中的每個項目並將值添加到數組中,然後自動篩選與這些項目的完全匹配是非常麻煩的。特別是對於非常大的列表。

有更好的方式來自動篩選兩個以上的「開始」標準嗎?

+0

你不能用[高級過濾](https://support.office.com/en-ie/article/Filter逐採用先進的準則 - 4c9222fe-8529-4cd7-a898-3f16abdff32b#bmconcepts)? – vacip

回答

0

注:接受的答案,但OP使用先前的問題

提到Gary的回答說,我們有這樣的數據:

enter image description here

,我們希望看到的項目開始與任ADM

運行此宏:

Sub ThreeWay() 
    Dim rng As Range, r As Range 
    Set rng = Range("A2:A25") 

    For Each r In rng 
     v = Left(r.Value, 1) 
     If v = "A" Or v = "D" Or v = "M" Then 
      r.EntireRow.Hidden = False 
     Else 
      r.EntireRow.Hidden = True 
     End If 
    Next r 
End Sub 

會產生: enter image description here

注:

  • 這是一個 「過濾器進行逐手」,而不是一個真正的AutoFilter
  • 如果你絕對必須有一個自動過濾器,然後使用我的舊帖子中的方法
+0

這很好,謝謝!但是,我需要使用自動篩選功能,因爲用戶需要能夠在宏運行後操作和排序並繼續過濾數據。 – Nate

+0

@NateBergeron我能想到的唯一的其他選擇是在工作表中使用* helper *列並讓宏操作該列。 –

+0

好吧,我想我只是使用你在其他問題中的方法。我會將此問題標記爲答案,並提供編輯以提及我使用的是前一個答案。 – Nate