Отключение автофильтра из кода - примеры кода VBA

В этом руководстве будет показано, как отключить / очистить автофильтры в VBA.

Автофильтры можно включить или выключить с помощью кода VBA.

Отключите автофильтр на активном листе в VBA

В следующем примере кода автофильтр отключается на активном листе, сначала проверяя, что он еще не отключен.

12345 Public Sub KillFilter ()Если ActiveSheet.AutoFilterMode, тоActiveSheet.AutoFilterMode = FalseКонец, еслиКонец подписки

Включите автофильтр на активном листе в VBA

В следующем примере кода включается автофильтр на активном листе, сначала проверяя, что он еще не включен.

12345 Общедоступный подпункт StartFilter ()Если не ActiveSheet.AutoFilterMode, тоActiveSheet.Range ("A1"). АвтофильтрКонец, еслиКонец подписки

Отключите автофильтр на всех листах в VBA.

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

12345678 Публичная подпрограмма StopAllFilters ()Dim ws как рабочий листДля каждой страницы в ActiveWorkbook.WorksheetsЕсли ws.AutoFilterMode = True, тоws.AutoFilterMode = FalseКонец, еслиСледующий wsКонец подписки

Отключите автофильтр на всех листах в VBA.

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

12345678 Публичная подпрограмма StartAllFilters ()Dim ws как рабочий листДля каждой страницы в ActiveWorkbook.WorksheetsЕсли не ws.AutoFilterMode, тоws.Range ("A1"). АвтофильтрКонец, еслиСледующий wsКонец подписки

Очистить все фильтры на активном листе в VBA

В следующем примере кода автофильтр остается включенным на активном листе, но очищаются все фильтры, примененные к данным.

12345 Public Sub ClearFilter ()Если ActiveSheet.FilterMode = True, тоActiveSheet.ShowAllDataКонец, еслиКонец подписки

Очистить все фильтры на всех листах в VBA

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

12345678 Публичная подпрограмма ClearAllFilters ()Dim ws как рабочий листДля каждой страницы в ActiveWorkbook.WorksheetsЕсли ws.FilterMode = True, тоws.ShowAllDataКонец, еслиСледующий wsКонец подписки

Очистить все фильтры в таблице в VBA

Если наш рабочий лист содержит объект таблицы, мы можем настроить код, чтобы просто очистить любой фильтр, примененный к этому фильтру, оставив автофильтр включенным.

123456789 Подложка ClearFilterFromTable ()Dim ws как рабочий листDim sTable As StringDim loTable как ListObjectsTable = "Таблица1"Установить ws = ActiveSheetУстановите loTable = ws.ListObjects (sTable)loTable.AutoFilter.ShowAllDataКонец подписки

Если объект таблицы будет связан со сводной таблицей, то сводная таблица обновится соответствующим образом.

wave wave wave wave wave