2016-05-29 3 views
1

Я использую vba для автоматического создания списка в Excel 2010 и хотел бы автофильтировать список, основанный на трех или более критериях «начинается с» (например, «a * ", "До нашей эры*"). К сожалению, насколько я могу судить, у вас может быть только два критерия «начинается с» с использованием оператора: = xlOr.Excel VBA Autofilter - Несколько критериев «начать с»

Принятый ответ для 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 использует ответ Гэри ранее упомянутый в вопросе

Скажем, у нас есть данные, такие как:

enter image description here

и мы хотим, чтобы увидеть детали начиная с любой A, D, или M.

Запуск этого макроса:

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

Смежные вопросы