Vba excel удалить условное форматирование

Обновлено: 07.07.2024

В Excel вы можете применить условное форматирование для форматирования ячеек или строк на основе определенного критерия. Но в некоторых случаях может потребоваться удалить правила условного форматирования, но оставить формат только в ячейках. Здесь, в этой статье, вы можете найти уловки по удалению условного форматирования, но сохранению формата в Excel.

Легко форматируйте ячейки на основе критериев Kutools for Excel

Удалите условное форматирование, но сохраните формат с помощью VBA

В Excel нет прямого метода удаления условного форматирования, кроме VBA.

1. Включите лист, на котором вы хотите удалить условные правила форматирования, но сохранить формат, и нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.

Нажмите 2 Вставить > Модульи вставьте ниже VBA в скрипт модуля. Смотрите скриншот:

VBA: удалите правила условного форматирования, но сохраните формат.

документ удалить правило условного форматирования, но сохранить формат 2

3. Нажмите F5 нажмите клавишу для запуска кода, и появится диалоговое окно для выбора диапазона для удаления условного форматирования. Смотрите скриншот:

4. Нажмите OK, правила условного форматирования были удалены из указанного диапазона, но сохранить формат.

Легко форматируйте ячейки на основе критериев Kutools for Excel

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

После бесплатная установка Kutools for Excel, сделайте следующее:

документ удалить правило условного форматирования, но сохранить формат 3

1. Выберите диапазон, который нужно отформатировать, и нажмите Kutools > Выберите > Выбрать определенные ячейки. Смотрите скриншот:

документ удалить правило условного форматирования, но сохранить формат 4

2. в Выбрать определенные ячейки диалоговом окне выберите нужный вариант из Тип выбора раздел, а затем укажите критерии из раскрывающегося списка и текстового поля под Конкретный тип раздел. Смотрите скриншот:

документ удалить правило условного форматирования, но сохранить формат 5

3. Нажмите Ok. Затем появляется диалоговое окно, в котором показано, сколько ячеек было выбрано. Пожалуйста, нажмите OK чтобы закрыть это диалоговое окно.

документ удалить правило условного форматирования, но сохранить формат 6

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

5. Нажмите OK. Теперь выбранные ячейки отформатированы без каких-либо правил условного форматирования. Смотрите скриншот:

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

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

Исходная таблица

Для наглядности к таблице добавлены три правила условного форматирования:

Правила условного форматирования

Первое правило делает синие гистограммы на столбце с суммами сделок. Создается через Главная - Условное форматирование - Гистограммы (Home - Conditional formatting - Data bars) .

Второе - подсвечивает желтым ячейки с именами менеджеров, которые не выполнили план, т.е. сумма их сделки меньше, чем зелёная ячейка H2.

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

Второе и третье правила создаются через Главная - Условное форматирование - Создать правило - Использовать формулу для определения форматируемых ячеек (Home - Conditional formatting - Create rule - Use formula to determine which cells to format) с вводом соответствующей формулы (2) и настройкой формата ячеек (3):

Создание правила условного форматирования с формулой

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

Путь к катастрофе

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

После удаления строки из середины таблицы

Теперь представим, что Кирилл Краснов повторил свою сделку в Тольятти с магазином "Лента" (строка 25) и вам нужно внести эти данные в таблицу.

Как вы поступите?

Скорее всего, как любой нормальный человек, вы скопируете 25-ю строчку и вставите её в конец таблицы, верно?

Копируем строчку в конец таблицы

Ага, и получите в наследство вот такой бардак в правилах условного форматирования:

Продублированные правила для добавленной строки

Excel зачем-то продублировал те же правила для добавленной строки вместо того, чтобы просто растянуть диапазон в поле Применяется к (Applied to) .

Ну, и на десерт давайте попробуем ещё что-нибудь безобидное - например, вставить пустую строку в середину таблицы, между 4 и 5-й строчками:

Вставляем пустую строку

В списке правил условного форматирования это приведёт к появлению еще одного дубликата и раздроблению диапазона уже существующего 5-го правила на кучу фрагментов:

Еще больше проблем с условным форматированием

Продолжать можно долго, но, думаю, вы уже уловили идею или вспомнили, как сталкивались с этой бедой ранее (эта проблема существует в Excel ещё с 2007 года). Выполнение совершенно безобидных и естественных операций с таблицей (вставка и удаление строк, копирование, вырезание и перенос) приводят к:

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

На англоязычных Excel-форумах в интернете такую картину называют иногда "адом" или "кошмаром условного форматирования" ("Conditional Formatting Nightmare" или "Conditional Formatting Hell").

Причем весь этот быстро разрастающийся бардак очень скоро начнёт нещадно тормозить. Условное форматирование, само по себе, весьма ресурсоёмкая штука, т.к. Excel пересчитывает правила УФ гораздо чаще, чем те же формулы. А когда этих правил несколько десятков, то даже самый мощный ПК начнёт "тупить".

Ну, и вишенкой на торте будет невозможность изменить размеры окна Диспетчера правил условного форматирования, чтобы увидеть весь этот хаос (в приведенных выше скриншотах я это сделал в графическом редакторе). Вам придется долго и мучительно прокручивать весь список в маленьком окошке полосой прокрутки.

Способ 1. Вручную

Несмотря на кажущуюся запущенность, лечится весь этот адок достаточно легко. Идея в том, что правила УФ "ломаются", обычно, для строк ниже первой. Первая же строка, в большинстве случаев, остается в порядке. Поэтому, чтобы всё починить, нам нужно просто очистить все правила в таблице и заново распространить их с первой строки на все остальные.

Для этого делаем следующее:

  1. Выделяем в нашей таблице все строки кроме первой.
  2. Удаляем все правила условного форматирования с выделенных ячеек через Главная - Условное форматирование - Удалить правила - Удалить правила из выделенных ячеек (Home - Conditional formatting - Clear rules - Clear rules from selected cells) .
  3. Выделяем первую строку, жмём кнопку-кисточку Формат по образцу на Главной (Home - Format Painter) и выделяем все остальные строки, копируя на них формат с первой.

Способ 2. Макросом

Если есть ощущение, что подобную процедуру вам придётся проделывать ещё не раз, то имеет смысл автоматизировать весь процесс с помощью макроса. Для этого:

  1. Жмём сочетание клавиш Alt + F11 или на вкладке Разработчик кнопку Visual Basic (Developer - Visual Basic) .
  2. В открывшемся окне редактора макросов добавляем в нашу книгу новый модуль через меню Insert - Module.
  3. Вставляем в созданный пустой модуль наш макрос:

Теперь можно будет просто выделить все строки в таблице (кроме шапки) и запустить макрос через Разрабочик - Макросы (Developer - Macros) или сочетанием клавиш Alt + F8 .

И всё будет хорошо :)

И не забудьте сохранить файл в формате с поддержкой макросов (xlsm).

Если нужно применять этот макрос в других файлах, то имеет смысл поместить его в Личную Книгу Макросов (Personal Macro Workbook).

Немного улучшенная версия этого макроса уже встроена в последнюю версию моей надстройки PLEX ;)

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

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

Исходная таблица

Для наглядности к таблице добавлены три правила условного форматирования:

Правила условного форматирования

Первое правило делает синие гистограммы на столбце с суммами сделок. Создается через Главная - Условное форматирование - Гистограммы (Home - Conditional formatting - Data bars) .

Второе - подсвечивает желтым ячейки с именами менеджеров, которые не выполнили план, т.е. сумма их сделки меньше, чем зелёная ячейка H2.

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

Второе и третье правила создаются через Главная - Условное форматирование - Создать правило - Использовать формулу для определения форматируемых ячеек (Home - Conditional formatting - Create rule - Use formula to determine which cells to format) с вводом соответствующей формулы (2) и настройкой формата ячеек (3):

Создание правила условного форматирования с формулой

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

Путь к катастрофе

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

После удаления строки из середины таблицы

Теперь представим, что Кирилл Краснов повторил свою сделку в Тольятти с магазином "Лента" (строка 25) и вам нужно внести эти данные в таблицу.

Как вы поступите?

Скорее всего, как любой нормальный человек, вы скопируете 25-ю строчку и вставите её в конец таблицы, верно?

Копируем строчку в конец таблицы

Ага, и получите в наследство вот такой бардак в правилах условного форматирования:

Продублированные правила для добавленной строки

Excel зачем-то продублировал те же правила для добавленной строки вместо того, чтобы просто растянуть диапазон в поле Применяется к (Applied to) .

Ну, и на десерт давайте попробуем ещё что-нибудь безобидное - например, вставить пустую строку в середину таблицы, между 4 и 5-й строчками:

Вставляем пустую строку

В списке правил условного форматирования это приведёт к появлению еще одного дубликата и раздроблению диапазона уже существующего 5-го правила на кучу фрагментов:

Еще больше проблем с условным форматированием

Продолжать можно долго, но, думаю, вы уже уловили идею или вспомнили, как сталкивались с этой бедой ранее (эта проблема существует в Excel ещё с 2007 года). Выполнение совершенно безобидных и естественных операций с таблицей (вставка и удаление строк, копирование, вырезание и перенос) приводят к:

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

На англоязычных Excel-форумах в интернете такую картину называют иногда "адом" или "кошмаром условного форматирования" ("Conditional Formatting Nightmare" или "Conditional Formatting Hell").

Причем весь этот быстро разрастающийся бардак очень скоро начнёт нещадно тормозить. Условное форматирование, само по себе, весьма ресурсоёмкая штука, т.к. Excel пересчитывает правила УФ гораздо чаще, чем те же формулы. А когда этих правил несколько десятков, то даже самый мощный ПК начнёт "тупить".

Ну, и вишенкой на торте будет невозможность изменить размеры окна Диспетчера правил условного форматирования, чтобы увидеть весь этот хаос (в приведенных выше скриншотах я это сделал в графическом редакторе). Вам придется долго и мучительно прокручивать весь список в маленьком окошке полосой прокрутки.

Способ 1. Вручную

Несмотря на кажущуюся запущенность, лечится весь этот адок достаточно легко. Идея в том, что правила УФ "ломаются", обычно, для строк ниже первой. Первая же строка, в большинстве случаев, остается в порядке. Поэтому, чтобы всё починить, нам нужно просто очистить все правила в таблице и заново распространить их с первой строки на все остальные.

Для этого делаем следующее:

  1. Выделяем в нашей таблице все строки кроме первой.
  2. Удаляем все правила условного форматирования с выделенных ячеек через Главная - Условное форматирование - Удалить правила - Удалить правила из выделенных ячеек (Home - Conditional formatting - Clear rules - Clear rules from selected cells) .
  3. Выделяем первую строку, жмём кнопку-кисточку Формат по образцу на Главной (Home - Format Painter) и выделяем все остальные строки, копируя на них формат с первой.

Способ 2. Макросом

Если есть ощущение, что подобную процедуру вам придётся проделывать ещё не раз, то имеет смысл автоматизировать весь процесс с помощью макроса. Для этого:

  1. Жмём сочетание клавиш Alt + F11 или на вкладке Разработчик кнопку Visual Basic (Developer - Visual Basic) .
  2. В открывшемся окне редактора макросов добавляем в нашу книгу новый модуль через меню Insert - Module.
  3. Вставляем в созданный пустой модуль наш макрос:

Теперь можно будет просто выделить все строки в таблице (кроме шапки) и запустить макрос через Разрабочик - Макросы (Developer - Macros) или сочетанием клавиш Alt + F8 .

И всё будет хорошо :)

И не забудьте сохранить файл в формате с поддержкой макросов (xlsm).

Если нужно применять этот макрос в других файлах, то имеет смысл поместить его в Личную Книгу Макросов (Personal Macro Workbook).

Немного улучшенная версия этого макроса уже встроена в последнюю версию моей надстройки PLEX ;)

Суть: в диапазоне ("А5:А100") средствами excel создано условное форматирование (все работает)
Вопрос: Как написать макрос который отключает условное форматирование только в этом диапазое и вкл там же (или 2 макроса вкл выкл)

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Удаление условного форматирования то срабатывает, то нет
Здравствуйте! В макросе использую строку ActiveSheet.Range("checked").FormatConditions.Delete .


Залить фоном ячейки условного форматирования
Здравствуйте, подскажите, пожалуйста макрос, который будет: 1. заливать фоном результаты в.

Не сразу отрабатывает правило условного форматирования
Есть строка, которая передается и используется как сериализатор скопа правил. Потом по ней идет.

Как зафиксировать результат работы условного форматирования?
Добрый день, друзья! Для замены формул значениями можно воспользоваться специальной ставкой. А как.

Можно где-нибудь в сторонке в одной ячейке сохранить форматирование.
А в основном диапазоне - удалять / потом , если нужно "ВКЛ" - то копировать из ячейки в сторонке..

Добавлено через 10 минут
funk57,

Как вариант , сохраним формат в ячейке "B1"

там стоит формула =СТРОКА(A5)=ЯЧЕЙКА("строка") ' формула выделяет ячейку из первого столбца той же строки, что и активная ячейка

а скопировать макросом не получается.

если прописыю так:

то она вставляется криво, что то типа такго =СТРОКА(A1046745)=ЯЧЕЙКА("строка")

Добавлено через 1 минуту
еще при копировании формата копируется и бордюр, а мне нужно что бы бордюр остался иходным

там бордюр копирует, а криво встает здесь

funk57,
Вы мой код пробовали?
Можно взять скрытый лист, копоровать тута и обратно.

Добавлено через 10 секунд
funk57,
Вы мой код пробовали?
Можно взять скрытый лист, копоровать туда и обратно.

Так можно в самом условном вставить ссылку на выключатель.
И это наверное самое простое.

Так можно в самом условном вставить ссылку на выключатель.
И это наверное самое простое.

да, это мне и нужно. пробовал не получается

посмотрите пожалуйста, а то у меня руки кривые наверное)

а чекбокс ставит в эту А1 ложь/истина

Добавлено через 2 минуты
Что-то Ваши файлы долетают битые. но в первом хоть УФ было, тут вообще его нет.
Ну в общем я выше написал - в свойствах чекбокса используете linkedcell.
А эту ячейку можно спрятать да хоть под чекбоксом, и в цвет фона её.

а можно ли както привязать к самому чек боксу, без дополнительной ячейки?

или может быть макрос которы прописывает в данный диапазон такое условное фрматирование?

Привязать формулу к чекбоксу вряд ли, разве может через UDF.
Макрос написать можно, вон выше что-то уже написано. но я не хочу и вникать - хорошее решение ведь с ячейкой, чем напрягает? funk57, Вечер Добрый. Если правильно понял вопрос то можно и без макроса это сделать. При помощи выпадающего списка выбираете "вкл и выкл". Проверьте.

Программное отключение условного форматирования ячеек Excel
Требуется не удалить условное форматирование ячеек, а временно отключить, а затем включить его.


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

Как работает программное включение и выключение автофильтра?
Здравствуйте все! Объясните, пожалуйста, как работает программное включение и выключение.

Включение/выключение кнопки по выделению элемента ListBox
Добрый день, форумчане! Мне нужно сделать так, чтобы при включении формы, на которой есть.


Сложность с именованием диапазона для условного форматирования
Добрый день. Есть следующая проблема: Excel версии раньше чем 2010. Есть 2 листа, на одном.

Заморозка условного форматирования
Доброго времени суток! Подскажите пожалуйста. Есть: таблица, в этой таблице работают условные.

Читайте также: