Как фильтровать текст с помощью макросов VBA в Excel

Итог: узнайте, как применять текстовые фильтры с VBA. Включает примеры фильтрации для нескольких элементов, начиная с, содержит, подстановочные знаки и т.д.

Уровень мастерства: Средний

VBA AutoFilter Automate Text Filters

Скачать файл

Файл Excel, содержащий код, можно скачать ниже. Этот файл содержит код для фильтрации различных типов данных и типов фильтров. Пожалуйста, ознакомьтесь с моей статьей Фильтрация сводной таблицы или среза по самой последней дате или периоду для более подробной информации.

VBA AutoFilters Guide.xlsm (100.5 KB)

Текстовые фильтры в Excel

При фильтрации столбца, содержащего текст, мы можем выбрать элементы из списка раскрывающегося меню фильтра.

VBA AutoFilter Multiple Criteria from Filter Drop-down Menu Listbox

Мы также можем использовать подменю «Текстовые фильтры» для создания пользовательского фильтра. Это дает нам опции для критериев фильтрации, которые равны, не равны, начинаются, заканчиваются, содержат или не содержат определенный текст. Мы также можем использовать символы подстановки для этих фильтров.

Следующий макрос содержит примеры фильтрации текста. Пожалуйста, ознакомьтесь с моей статьей Фильтрация сводной таблицы или среза по самой последней дате или периоду для получения более подробной информации о том, как использовать метод AutoFilter и его параметры.

Образцы кода VBA для текстовых фильтров

Код в поле ниже можно скопировать / вставить в VB Editor.

Sub AutoFilter_Text_Examples()
' Примеры фильтрации столбцов с помощью TEXT

Dim lo As ListObject
Dim iCol As Long

  'Установить ссылку на первую таблицу на листе
  Set lo = Sheet1.ListObjects(1)

  'Установить поле фильтра
  iCol = lo.ListColumns("Product").Index
  
  'Очистить фильтры
  lo.AutoFilter.ShowAllData
  
  'Все строки, начинающиеся с .AutoFilter, являются продолжением
  'с утверждением.
  With lo.Range
  
    'Один предмет
    .AutoFilter Field:=iCol, Criteria1:="Product 2"
    
    '2 Критерия с использованием оператора: = xlOr
    .AutoFilter Field:=iCol, _
                Criteria1:="Product 3", _
                Operator:=xlOr, _
                Criteria2:="Product 4"
    
    'Более 2 критериев (список элементов в функции массива)
    .AutoFilter Field:=iCol, _
                Criteria1:=Array("Product 4", "Product 5", "Product 6"), _
                Operator:=xlFilterValues
                        
    'Начинается с - использовать звездочку в качестве символа 'подстановки в конце строки
    .AutoFilter Field:=iCol, Criteria1:="Product*"
    
    'Заканчивается на - использовать звездочку в качестве символа 'подстановки в начале строки
    
    .AutoFilter Field:=iCol, Criteria1:="*2"
    
    'Содержит – поставить звездочки до и после текста поиска
    .AutoFilter Field:=iCol, Criteria1:="*uct*"
    
    'Не содержит текст
    'Начните с оператора Not <> и поставить звездочки до и после текста 
    .AutoFilter Field:=iCol, Criteria1:="<>*8*"
    
    ' Содержит подстановочный знак * или?
    ' Используйте тильду ~ перед символом для поиска значений с
    ' подстановочные
    .AutoFilter Field:=iCol, Criteria1:="Product 1~*"
  
  End With

End Sub


Фильтры и типы данных

Параметры раскрывающегося меню фильтра изменяются в зависимости от типа данных в столбце. У нас есть разные фильтры для текста, чисел, дат и цветов. Это создает МНОГО различных комбинаций операторов и критериев для каждого типа фильтра.

Я создал отдельные статьи для каждого из этих типов фильтров. Статьи содержат пояснения и примеры кода VBA.

Файл в разделе загрузок выше содержит все эти примеры кода в одном месте. Вы можете добавить его в свою личную книгу макросов и использовать макросы в своих проектах.

Пожалуйста, оставьте комментарий ниже с любыми вопросами или предложениями. Спасибо!

Оцените статью
Добавить комментарий