Дополнительно
Excel 2013 VBA Очистить все фильтры макро
Кажется, старые макросы не работают. У меня есть правильная система securti для запуска макросов VBA, но когда я попробовал несколько методов очистки ВСЕХ фильтров на рабочем листе, я получил ошибку компиляции.
Вот что я попробовал:
Sub AutoFilter_Remove ()
«Этот макрос удаляет любую фильтрацию, чтобы отобразить все данные, но не удаляет стрелки фильтра
ActiveSheet.ShowAllData
Конец Sub
< / pre > < / CODE >
У меня есть кнопки на листах, чтобы очистить все фильтры для удобства использования пользователями, поскольку на листах много столбцов, на которых есть фильтры.
38
24
Попробуй это:
Если на листе уже есть фильтр, то:
удалит это.
ShowAllData допустит ошибку, если фильтр в данный момент не применяется. Это будет работать:
Для таблиц попробуйте это, чтобы проверить, включено ли оно и выключено:
Включить:
это работает хорошо.!
Я нашел этот обходной путь, чтобы работать довольно эффективно. Он в основном удаляет автофильтр из таблицы, а затем повторно применяет его, удаляя все предыдущие фильтры. По моему опыту, это не склонно к обработке ошибок, требуемой с другими методами, упомянутыми здесь.
Это замечательно, единственный ответ, который я нашел, который удовлетворил мою особую потребность, большое спасибо за то, что вы подняли его!
Я сделал лишь небольшое дополнение к нему, чтобы экран не мигал, и он удалял и впоследствии повторно применял пароль на каждом листе, когда он циклически переключается [у меня один и тот же пароль для всех листов в книге]. В духе вашего подчинения я добавляю это, чтобы помочь кому-либо еще....
Я знаю, что это относительно старый пост, и мне не очень нравится быть некромантом... Но так как у меня была та же проблема, и я безуспешно попробовал несколько вариантов в этой теме, я объединил некоторые ответы, чтобы получить работающий макрос..
Надеюсь, это кому-то поможет :)
В Excel есть два типа фильтров:
Функция автоматического фильтра позволяет фильтровать из интерфейса Excel с помощью этих крошечных раскрывающихся кнопок. А функция расширенного фильтра позволяет фильтровать с использованием диапазона критериев.
Метод ShowAll удаляет фильтры, как в, показывает все строки, но не избавляет от этих кнопок Drop Down. Чтобы удалить эти кнопки, необходимо установить свойство AutoFilterMode рабочего листа на FALSE.
Вот Sub, который я часто использую для удаления фильтров:
Это показывает все данные и удаляет раскрывающиеся кнопки. Он пригодится при укладке (копировании и вставке) данных с нескольких листов или рабочих книг. Надеюсь, это поможет.
Я обычно использую этот код
Это тоже сработает:
Сначала будет проверена, установлен ли AutoFilterMode (возможно фильтрация), затем проверена, включен ли FilterMode (вы что-то фильтруете), а затем отключите фильтрацию.
Что касается ошибок, т.е. защита - другие ответы
Добавлен контекст (мой скрипт зацикливается на листах, которые затем сохраняются как CSV, поэтому необходимо удалить фильтры - но сохранить AutoFilterMode включенным, если установлено:
Попробуйте что-то вроде этого:
.FilterMode
возвращает true, если рабочий лист находится в режиме фильтра. (См. Это для получения дополнительной информации.) См. Это для получения дополнительной информации о.AutoFilter
. И, наконец, это предоставит больше информации о методе.ShowAllData
.Вот одна строка, которую я использую. Он проверяет автофильтр и, если найден, удаляет его.
В отличие от некоторых ответов, этот код не будет создавать автофильтр, если он используется на рабочем листе, который в первую очередь не фильтруется автоматически.
Я использую этот подход для многостолового стола и таблицы диапазонов как уникальный способ.
Просто активируйте заголовки фильтров и запустите showalldata, работает на 100%. Что-то вроде:
Если у вас есть полевые заголовки в A1: Z1 и R1: Y1 соответственно.
Я использую
.filtermode
, если фильтр включен, возвращает trueПопробуй это:
Этот код очищает все фильтры и удаляет сортировку.
Источник: Удаление фильтров для каждой таблицы в рабочей книге, VBA
Вот некоторый код для фиксации фильтров. Например, если вы включаете фильтры на своем листе, вы добавляете столбец, а затем хотите, чтобы новый столбец также был покрыт фильтром.
Эта тема древняя, но я не был доволен ни одним из данных ответов и закончил тем, что написал свой собственный. Я делюсь этим сейчас:
Начнем с:
Мы можем подать конкретный рабочий лист на этот макрос, который будет разворачивать только этот рабочий лист. Полезно, если вам нужно убедиться, что только один рабочий лист ясен. Тем не менее, я обычно хочу сделать всю рабочую тетрадь
Вы можете использовать это, например, открыв рабочую книгу, с которой вам нужно разобраться, и сбросив их фильтры, прежде чем что-то с ней делать:
Тот, который я использую больше всего: Сброс всех фильтров в рабочей книге, в которой хранится модуль:
Это будет понятно только в том случае, если у вас есть фильтр, и не вызывает ошибок при отсутствии фильтра. Если ActiveSheet.AutoFilterMode, то ActiveSheet.Columns ("A"). AutoFilter