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

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

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

VBA AutoFilter Automate Date Filters

Скачать файл

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

VBA AutoFilters Guide.xlsm (100.5 KB)

Фильтры цвета и значков в Excel

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

Меню «Фильтр по цвету» появляется, когда столбец содержит какой-либо шрифт или заливку. Оно также появляется, когда столбец содержит значки, созданные условным форматированием. Мы также можем использовать VBA для применения этих фильтров.

Давайте посмотрим на некоторые примеры кода для различных цветовых фильтров.

Фильтры цвета и значков в VBA

Sub AutoFilter_Color_Icon_Examples()
' Примеры фильтрации столбцов с помощью COLORS и ICONS
 
Dim lo As ListObject
Dim iCol As Long

  ' Установить ссылку на первую таблицу на листе
  Set lo = Sheet1.ListObjects(1)
  
  ' Установить поле фильтра
  iCol = lo.ListColumns("Product").Index
  
  ' Очистить фильтры
  lo.AutoFilter.ShowAllData
  
  With lo.Range
  
    ' Цвета

    ' Цвет шрифта и заливки устанавливаются в критерии 1.
    ' Макро-рекордер дает нам значение RGB. RGB также можно
    ' найти в меню More Colors на вкладке Custom.
  
    ' Cell Fill Color для темно-красного
    .AutoFilter Field:=iCol, _
                Criteria1:=RGB(192, 0, 0), _
                Operator:=xlFilterCellColor
      
    ' Цвет шрифта для темно-зеленого
    .AutoFilter Field:=iCol, _
                Criteria1:=RGB(0, 97, 0), _
                Operator:=xlFilterFontColor
    
    
    ' Иконки
  
    ' Установить поле фильтра
    iCol = lo.ListColumns("Icon").Index
          
    ' Очистить фильтры
    lo.AutoFilter.ShowAllData
  
    ' Значок (условное форматирование)

    .AutoFilter Field:=iCol, _
                Criteria1:=ThisWorkbook.IconSets(xl4CRV).Item(4), _
                Operator:=xlFilterIcon
        
    End With
    
End Sub

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

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

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

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

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

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