|
D07 Пользователь Сообщений: 60 |
Добрый день. — ActiveSheet.ShowAllData Я так понимаю, что нужно добавить что то, чтобы при нажатии на кнопку при отсутствии фильтров, он просто вхолостую щелкал и все. Но я в этом ни бум-бум. Помогите пожалуйста. |
|
SAS888 Пользователь Сообщений: 757 |
#2 01.03.2018 06:36:09 Если требуется «Отобразить все» не зависимо от того, применен автофильтр или нет, то можно так:
Если же требуется вообще удалить автофильтр с листа, то так:
Чем шире угол зрения, тем он тупее. |
||||
|
D07 Пользователь Сообщений: 60 |
«Если требуется «Отобразить все» не зависимо от того, применен автофильтр или нет, то можно так:» Да, Вы меня правильно поняли. Вставил в макрос — не работает |
|
D07 Пользователь Сообщений: 60 |
Прошу прощения — это я балбес. Нужно было разнести по разным строкам |
|
DopplerEffect Пользователь Сообщений: 527 |
#5 01.03.2018 07:45:56
Этот код должен работать, сам проверял в работе, а выложите пример файла. |
||
|
ZVI Пользователь Сообщений: 4328 |
#6 01.03.2018 07:53:18
Или так: If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData |
||
|
D07 Пользователь Сообщений: 60 |
#7 01.03.2018 11:26:33
Все работает, я просто невнимательно сделал первый раз. |
||
|
adamm Пользователь Сообщений: 830 |
#8 04.11.2019 09:51:03 Всем привет!
, но после снятия всех фильтров в заголовках остаются кнопки, вроде как фильтр не снят, но на само деле снят, как можно исправить Прикрепленные файлы
|
||
|
skais675 Пользователь Сообщений: 2177 |
#9 04.11.2019 10:07:26
Мой канал |
||
|
adamm Пользователь Сообщений: 830 |
#10 04.11.2019 10:29:01 skais675, спасибо, я нашёл вот такой код, http://qaru.site/questions/228230/removing-filters-for-each-table-in-a-workbook-vba/1202718#1202718 :
Ваш код, то же работает, но в чём разница? |
||
|
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#11 04.11.2019 10:43:16 Хорошая справка по работе с фильтрами
очень плохая идея Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
|
skais675 Пользователь Сообщений: 2177 |
#12 04.11.2019 10:55:17 В дополнении темы — полное удаление фильтров
Мой канал |
||
|
adamm Пользователь Сообщений: 830 |
#13 04.11.2019 11:03:05
Ситуация так требует, данные таблицы являются промежуточным звеном, выгружаются они из PQ, а к ним привязаны формулы |
||
|
RAN Пользователь Сообщений: 7091 |
#14 04.11.2019 13:24:26 Вам нужно удалить фильтры, или сбросить?
|
||
|
geniux Пользователь Сообщений: 5 |
я пользуюсь таким кодом, если нужно сбросить фильтры на одном листе или несколько (нужно добавить кнопку) Private Sub CommandButton1_Click() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets End Sub |
|
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
#16 05.11.2019 00:03:51 geniux, Вы видели, как код выглядит у других? |
Предположим, вы создали несколько фильтров на разных листах в книге Excel и теперь хотите очистить все эти фильтры сразу. Обычно вам нужно переходить к листу один за другим, чтобы проверить фильтр, а затем очистить его вручную. Есть ли удобный способ очистить фильтры со всех листов в активной книге? Пожалуйста, попробуйте метод, описанный в этой статье.
Очистить фильтры со всех листов в активной книге с кодом VBA
Очистить фильтры со всех листов в активной книге с кодом VBA
Запустите приведенный ниже сценарий VBA, чтобы очистить фильтры со всех листов в активной книге.
1. В книге, из которой нужно очистить фильтры, нажмите кнопку другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте приведенный ниже сценарий VBA в окно модуля. См. Снимок экрана ниже:
Код VBA: очистить фильтры со всех листов в активной книге
Sub Clear_fiter()()
'Updated by Extendoffice 20210625
Dim xAF As AutoFilter
Dim xFs As Filters
Dim xLos As ListObjects
Dim xLo As ListObject
Dim xRg As Range
Dim xWs As Worksheet
Dim xIntC, xF1, xF2, xCount As Integer
Application.ScreenUpdating = False
On Error Resume Next
For Each xWs In Application.Worksheets
xWs.ShowAllData
Set xLos = xWs.ListObjects
xCount = xLos.Count
For xF1 = 1 To xCount
Set xLo = xLos.Item(xF1)
Set xRg = xLo.Range
xIntC = xRg.Columns.Count
For xF2 = 1 To xIntC
xLo.Range.AutoFilter Field:=xF2
Next
Next
Next
Application.ScreenUpdating = True
End Sub
3. нажмите F5 ключ для запуска кода. Затем все фильтры на всех листах в текущей книге немедленно очищаются.
Статьи по теме:
- Как очистить кеш фильтра (старые элементы) из сводной таблицы в Excel?
- Как очистить фильтры при открытии, сохранении или закрытии книги в Excel?
- Как фильтровать данные по флажку в Excel?
- Как заполнить ряд чисел в столбце отфильтрованного списка в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (11)
Оценок пока нет. Оцените первым!
|
Снять фильтр столбца на всех листах книги |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Еще…Меньше
Если определенные данные на нем не находятся, возможно, они скрыты фильтром. Например, если на вашем компьютере есть столбец с датами, в этом столбце может быть фильтр, ограничивающий значения определенными месяцами.
Существует несколько вариантов:
-
Очистка фильтра из определенного столбца
-
Очистка всех фильтров
-
Удаление всех фильтров
Очистка фильтра из столбца
Нажмите кнопку Фильтр 
Например, на рисунке ниже показан пример очистки фильтра из столбца «Страна».
Примечание: Удалить фильтры из отдельных столбцов нельзя. Фильтры можно отключать для всего диапазона. Если вы не хотите, чтобы кто-то фильтрует определенный столбец, вы можете скрыть его.
Очистка всех фильтров на
На вкладке Данные нажмите кнопку Очистить.

Как узнать, что к данным был применен фильтр?
Если фильтрация применима к таблице на бумаге, в заголовке столбца вы увидите указанные ниже кнопки.
|
Кнопка |
Описание |
|---|---|
|
Фильтр доступен и не использовался для сортировки данных в столбце. |
|
Фильтр используется для фильтрации или сортировки данных в столбце. |
На следующем сайте фильтр доступен для столбца «Товар», но еще не использовался. Для сортировки данных использовался фильтр в столбце «Страна».
Удалите все фильтры на листе
Если вы хотите полностью удалить фильтры, перейдите на вкладку Данные и нажмите кнопку Фильтр или используйте клавиши ALT+D+F+F.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Фильтрация данных с помощью автофильтра
Фильтрация диапазона данных
Сортировка данных на
Нужна дополнительная помощь?
На чтение 4 мин. Просмотров 14.2k.
Итог: узнайте, как очистить все фильтры и фильтры в одном столбце с помощью макросов VBA. Включает примеры кода для регулярных диапазонов и таблиц Excel.
Уровень мастерства: Средний
Содержание
- Скачать файл
- Очистить все фильтры из диапазона
- Ошибка метода ShowAllData
- Очистить все фильтры из таблицы Excel
- Очистить все фильтры во всех таблицах на листе
- Очистить фильтры в одной колонке
- Фильтры и типы данных
Скачать файл
Файл Excel, содержащий код, можно скачать ниже. Этот файл содержит код для фильтрации различных типов данных и типов фильтров. Пожалуйста, ознакомьтесь с моей статьей Фильтрация сводной таблицы или среза по самой последней дате или периоду для более подробной информации.
VBA AutoFilters Guide.xlsm (100.5 KB)
Очистить все фильтры из диапазона
Мы используем метод ShowAllData, чтобы очистить все фильтры,
примененные к диапазону.
Это аналогично нажатию кнопки «Очистить» на вкладке «Данные»
на ленте (сочетание клавиш: Alt, A, C)
К рабочему листу может быть применен только один диапазон
фильтров, поэтому мы на самом деле очищаем фильтры на листе.
Sub Clear_All_Filters_Range()
' Для очистки всех фильтров используйте метод ShowAllData
' для листа. Добавьте обработку ошибок, чтобы обойти ошибку, если
' фильтры не применяются. Не работает для таблиц.
On Error Resume Next
Sheet1.ShowAllData
On Error GoTo 0
End Sub
Ошибка метода ShowAllData
Если к любому столбцу не применены фильтры, метод ShowAllData вызовет ошибку. Это ошибка времени выполнения ‘1004 с описанием:
Method ‘ShowAllData’ of object ‘_Worksheet’ failed.
Следующая строка On Error Resume Next будет игнорировать эту
ошибку. При ошибке GoTo 0 сбрасывается, поэтому ошибки возникают в любых
строках кода ниже.
Примечание. Когда метод ShowAllData упоминается как элемент листа, он НЕ очищает фильтры, которые применяются к таблицам Excel (ListObjects), если в таблице не выбрана ячейка. Поэтому лучше всего использовать приведенный ниже код для таблиц.
Чтобы очистить все фильтры таблицы Excel (ListObject), мы
также используем метод ShowAllData. В этом случае ShowAllData является членом
свойства AutoFilter объекта ListObject.
Sub Clear_All_Filters_Table() Dim lo As ListObject ' Установить ссылку на первую таблицу на листе Set lo = Sheet1.ListObjects(1) ' Очистить все фильтры для всей таблицы lo.AutoFilter.ShowAllData End Sub
Очистить все фильтры во всех таблицах на листе
Приведенный выше код удаляет фильтры только для одной
таблицы. Мы можем просмотреть таблицы на листе, чтобы удалить все фильтры из
каждой таблицы.
Sub Clear_All_Table_Filters_On_Sheet()
Dim lo As ListObject
' Перебрать все таблицы на листе
For Each lo In Sheet1.ListObjects
' Очистить все фильтры для всей таблицы
lo.AutoFilter.ShowAllData
Next lo
End Sub
Очистить фильтры в одной колонке
Чтобы очистить фильтры для одного столбца, мы используем
метод AutoFilter. Мы ссылаемся только на параметр Field и устанавливаем
значение для номера столбца, который мы хотим очистить.
Sub Clear_Column_Filter_Range()
' Чтобы очистить фильтр от одного столбца, укажите
' Только номер поля и никаких других параметров
Sheet1.Range("B3:G1000").AutoFilter Field:=4
End Sub
Поле — это номер столбца диапазона, к которому применяются
фильтры, а не номер столбца рабочего листа.
Тот же метод используется для очистки фильтров, примененных
к столбцу в таблице. В этом случае метод AutoFilter является членом объекта
Range объекта ListObject.
Sub Clear_Column_Filter_Table() Dim lo As ListObject ' Установить ссылку на первую таблицу на листе Set lo = Sheet1.ListObjects(1) ' Очистить фильтр в столбце одной таблицы, ' указав только параметр поля lo.Range.AutoFilter Field:=4 End Sub
Фильтры и типы данных
Параметры
раскрывающегося меню фильтра изменяются в зависимости от типа данных в столбце.
У нас есть разные фильтры для текста, чисел, дат и цветов. Это создает МНОГО
различных комбинаций операторов и критериев для каждого типа фильтра.
Я создал отдельные статьи для каждого из этих типов фильтров. Статьи содержат пояснения и примеры кода VBA.
- Как фильтровать числа с помощью VBA
- Как отфильтровать пустые и непустые ячейки
- Как фильтровать текст с помощью VBA
- Как отфильтровать даты по VBA
- Как отфильтровать цвета и значки с помощью VBA
Файл в разделе загрузок выше содержит все эти примеры кода в одном месте. Вы можете добавить его в свою личную книгу макросов и использовать макросы в своих проектах.
Пожалуйста, оставьте
комментарий ниже с любыми вопросами или предложениями. Спасибо!











