Макрос для очистки форматов в excel

Слишком много различных форматов ячеек

Это может случиться и с вами.

Работая с большой книгой в Excel в один совсем не прекрасный момент вы делаете что-то совершенно безобидное (добавление строки или вставку большого фрагмента ячеек, например) и вдруг получаете окно с ошибкой «Слишком много различных форматов ячеек»:

too-many-formats1.png

Иногда эта проблема возникает в еще более неприятном виде. Накануне вечером вы, как обычно, сохранили и закрыли свой отчет в Excel, а сегодня утром не можете его открыть — выдается подобное же сообщение и предложение удалить все форматирование из файла. Радости мало, согласитесь? Давайте разберем причины и способы исправления этой ситуации.

Почему это происходит

Такая ошибка возникает, если в рабочей книге превышается предельно допустимое количество форматов, которое Excel может сохранять:

  • для Excel 2003 и старше — это 4000 форматов
  • для Excel 2007 и новее — это 64000 форматов

Причем под форматом в данном случае понимается любая уникальная комбинация параметров форматирования:

  • шрифт
  • заливки
  • обрамление ячеек
  • числовой формат
  • условное форматирование

Так, например, если вы оформили небольшой фрагмент листа подобным образом:

too-many-formats4.png

… то Excel запомнит в книге 9 разных форматов ячеек, а не 2, как кажется на первый взгляд, т.к. толстая линия по периметру создаст, фактически 8 различных вариантов форматирования. Добавьте к этому дизайнерские танцы со шрифтами и заливками и тяга к красоте в большом отчете приведет к появлению сотен и тысяч подобных комбинаций, которые Excel будет вынужден запоминать. Размер файла от этого, само собой, тоже не уменьшается.

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

Как с этим бороться

Направлений тут несколько:

  1. Если у вас файл старого формата (xls), то пересохраните его в новом (xlsx или xlsm). Это сразу поднимет планку с 4000 до 64000 различных форматов.
  2. Удалите избыточное форматирование ячеек и лишние «красивости» с помощью команды Главная — Очистить — Очистить форматы (Home — Clear — Clear Formatting). Проверьте, нет ли на листах строк или столбцов отформатированных целиком (т.е. до конца листа). Не забудьте про возможные скрытые строки и столбцы.
  3. Проверьте книгу на наличие скрытых и суперскрытых листов — иногда на них и кроются «шедевры».
  4. Удалите ненужное условное форматирование на вкладке Главная — Условное форматирование — Управление правилами — Показать правила форматирования для всего листа (Home — Conditional Formatting — Show rules for this worksheet).
  5. Проверьте, не накопилось ли у вас избыточное количество ненужных стилей после копирования данных из других книг. Если на вкладке Главная (Home) в списке Стили (Styles) огромное количество «мусора»:

    too-many-formats2.png

    …то избавиться от него можно с помощью небольшого макроса. Нажмите Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), вставьте новый модуль через меню Insert — Module и скопируйте туда код макроса:

Sub Reset_Styles()
    'удаляем все лишние стили
    For Each objStyle In ActiveWorkbook.Styles
        On Error Resume Next
        If Not objStyle.BuiltIn Then objStyle.Delete
        On Error GoTo 0
    Next objStyle
    'копируем стандартный набор стилей из новой книги
    Set wbMy = ActiveWorkbook
    Set wbNew = Workbooks.Add
    wbMy.Styles.Merge wbNew
    wbNew.Close savechanges:=False
End Sub
  

Запустить его можно с помощью сочетания клавиш Alt+F8 или кнопкой Макросы (Macros) на вкладке Разработчик (Developer). Макрос удалит все неиспользуемые стили, оставив только стандартный набор:

too-many-formats3.png

Ссылки по теме

  • Как автоматически подсвечивать ячейки с помощью условного форматирования в Excel
  • Что такое макросы, куда и как копировать код макроса на Visual Basic, как их запускать
  • Книга Excel стала очень тяжелой и медленной — как исправить?

Содержание

  • Устранение ошибки
    • Способ 1: сохранение файла с расширением XLSX
    • Способ 2: очистка форматов в пустых строках
    • Способ 3: удаление форматов внутри таблицы
    • Способ 4: удаление условного форматирования
    • Способ 5: удаление пользовательских стилей
    • Способ 6: удаление пользовательских форматов
    • Способ 7: удаление ненужных листов
  • Вопросы и ответы

Ошибка слишком много форматов в Microsoft Excel

Одной из проблем, с которой встречаются пользователи при работе с таблицами в Microsoft Excel, является ошибка «Слишком много различных форматов ячеек». Особенно она распространена при работе с таблицами с расширением XLS. Давайте разберемся в сути этой проблемы и выясним, какими способами её можно устранить.

Читайте также: Как уменьшить размер файла в Экселе

Устранение ошибки

Чтобы понять, как устранить ошибку, нужно знать её суть. Дело в том, что файлы Эксель с расширением XLSX поддерживают одновременную работу с 64000 форматами в документе, а с расширением XLS – только 4000. При превышении указанных лимитов и возникает данная ошибка. Под форматом понимается комбинация различных элементов форматирования:

  • Границы;
  • Заливка;
  • Шрифт;
  • Гистограммы и т.д.

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

Способ 1: сохранение файла с расширением XLSX

Как уже было сказано выше, документы с расширением XLS поддерживают одновременную работу только с 4000 единиц форматов. Этим и объясняется тот факт, что чаще всего данная ошибка встречается именно в них. Конвертирование книги в более современный документ XLSX, который поддерживает работу одновременно с 64000 элементами форматирования, позволит в 16 раз больше использовать эти элементы прежде, чем возникнет указанная выше ошибка.

  1. Переходим во вкладку «Файл».
  2. Переход во вкладку Файл в Microsoft Excel

  3. Далее в левом вертикальном меню кликаем по пункту «Сохранить как».
  4. Переход к сохранению файла в Microsoft Excel

  5. Запускается окно сохранения файла. При желании его можно сохранить в другом месте, а не в том, где располагается документ-исходник, перейдя в иную директорию жесткого диска. Также в поле «Имя файла» можно при желании изменить его наименование. Но это не обязательные условия. Эти настройки можно оставить по умолчанию. Главной задачей является в поле «Тип файла» сменить значение «Книга Excel 97-2003» на «Книга Excel». В этих целях кликаем по данному полю и выбираем соответствующее наименование из открывшегося списка. После выполнения указанной процедуры жмем на кнопку «Сохранить».

Окно сохранения документа в Microsoft Excel

Теперь документ будет сохранен с расширением XLSX, что позволит работать с большим в 16 раз количеством форматов одновременно, чем это было при работе с файлом с расширением XLS. В подавляющем большинстве случаев данный способ позволяет устранить изучаемую нами ошибку.

Документ сохранен с другим расширением в Microsoft Excel

Способ 2: очистка форматов в пустых строках

Но все-таки бывают случаи, когда пользователь работает именно с расширением XLSX, но у него все равно возникает данная ошибка. Это связано с тем, что при работе с документом был превышен рубеж в 64000 форматов. Кроме того, по определенным причинам возможна ситуация, когда нужно сохранить файл именно с расширением XLS, а не XLSX, так как с первым, например, умеют работать большее количество сторонних программ. В этих случаях нужно искать другой выход из сложившейся ситуации.

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

Избыточное форматирование в Microsoft Excel

  1. Прежде всего, нам нужно выделить всю область под таблицей, начиная с первой строки, в которой нет данных. Для этого щелкаем левой кнопкой мыши по числовому наименованию этой строки на вертикальной панели координат. Производится выделение всей строки. Применяем нажатие комбинации кнопок Ctrl+Shift+стрелка вниз. Выделяется весь диапазон документа ниже таблицы.
  2. Выделение диапазона ниже таблицы в Microsoft Excel

    Lumpics.ru

  3. Затем перемещаемся во вкладку «Главная» и жмем на иконку на ленте «Очистить», которая располагается в блоке инструментов «Редактирование». Открывается список, в котором выбираем позицию «Очистить форматы».
  4. Переход к очистке форматов в Microsoft Excel

  5. После этого действия выделенный диапазон будет очищен.

Форматы очищены в Microsoft Excel

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

  1. Клацаем по наименованию первого не заполненного данными столбца в панели координат. Происходит выделение его до самого низа. Затем производим набор комбинации кнопок Ctrl+Shift+стрелка вправо. При этом выделяется весь диапазон документа, расположенный справа от таблицы.
  2. Выделение диапазонасправа от таблицы в Microsoft Excel

  3. Затем, как и в предыдущем случае, жмем по иконке «Очистить», а в выпадающем меню выбираем вариант «Очистить форматы».
  4. Переход к очистке форматов в программе Microsoft Excel

  5. После этого будет произведена очистка во всех ячейках справа от таблицы.

Форматы очищены справа от таблицы в Microsoft Excel

Подобную процедуру при возникновении ошибки, о которой мы говорим в данном уроке, не лишним будет провести даже в том случае, если на первый взгляд кажется, что диапазоны ниже и правее таблицы вообще не отформатированы. Дело в том, что в них могут находиться «скрытые» форматы. Например, текста или чисел в ячейке может и не быть, но в ней установлен формат полужирного шрифта и т.д. Поэтому, не поленитесь, в случае возникновения ошибки, провести эту процедуру даже над внешне пустыми диапазонами. Также не нужно забывать про возможные скрытые столбцы и строки.

Способ 3: удаление форматов внутри таблицы

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

  1. В тех диапазонах, в которых форматирование можно убрать полностью, и это не повлияет на информативность таблицы, выполняем процедуру по тому же алгоритму, что был описан в предыдущем способе. Сначала выделяем диапазон в таблице, в котором следует произвести очистку. Если таблица очень большая, то данную процедуру будет удобнее делать, воспользовавшись комбинациями кнопок Ctrl+Shift+стрелка вправо (влево, вверх, вниз). Если вы при этом выделите ячейку внутри таблицы, то при помощи данных клавиш выделение будет производиться только внутри неё, а не до конца листа, как в предыдущем способе.

    Жмем на уже знакомую нам кнопку «Очистить» во вкладке «Главная». В выпадающем списке выбираем вариант «Очистить форматы».

  2. Переход к очистке форматов внутри таблицы в Microsoft Excel

  3. Выделенный диапазон таблицы будет полностью очищен.
  4. Столбец очищен от форматов в Microsoft Excel

  5. Единственное, что нужно потом будет сделать – это установить границы в очищенном фрагменте, если они присутствуют в остальном табличном массиве.

Установка границ в Microsoft Excel

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

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

Удаление лишнего форматирования вручную в Microsoft Excel

Конечно, это долгое и кропотливое занятие, если таблица слишком большая. Поэтому лучше сразу при составлении документа не злоупотреблять «красивостями», чтобы потом не возникло проблем, на решение которых придется тратить много времени.

Способ 4: удаление условного форматирования

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

  1. Располагаясь во вкладке «Главная», клацаем по кнопке «Условное форматирование», которая находится в блоке «Стили». В меню, которое откроется после данного действия, выбираем пункт «Управление правилами».
  2. Переход в окно управления правилами условного форматирования в Microsoft Excel

  3. Вслед за этим запускается окошко управления правилами, в котором располагается список элементов условного форматирования.
  4. Диспетчер правил условного форматирования в Microsoft Excel

  5. По умолчанию в списке расположены только элементы выделенного фрагмента. Для того, чтобы отобразить все правила на листе, переставляем переключатель в поле «Показать правила форматирования для» в позицию «Этот лист». После этого будут отображены все правила текущего листа.
  6. Включение отображения всех правил на листе в Microsoft Excel

  7. Затем выделяем правило, без которого можно обойтись, и жмем на кнопку «Удалить правило».
  8. Удаление правила в диспетчере правил условного форматирования в Microsoft Excel

  9. Таким способом удаляем те правила, которые не играют важной роли в визуальном восприятии данных. После того, как процедура завершена, жмем на кнопку «OK» внизу окошка Диспетчера правил.

Закрыте окошка Диспечтыера правил условного форматирования в Microsoft Excel

Если нужно полностью удалить условное форматирование из конкретного диапазона, то сделать это ещё проще.

  1. Выделяем диапазон ячеек, в котором планируем произвести удаление.
  2. Закрыте окошка Диспечтыера правил условного форматирования в Microsoft Excel

  3. Щелкаем по кнопке «Условное форматирование» в блоке «Стили» во вкладке «Главная». В появившемся списке выбираем вариант «Удалить правила». Далее открывается ещё один список. В нем выбираем пункт «Удалить правила из выделенных ячеек».
  4. Удаление правил условного форматирования из выделенных ячеек в Microsoft Excel

  5. После этого все правила в выделенном диапазоне будут удалены.

Условное форматирование удалено в Microsoft Excel

Если вы хотите полностью удалить условное форматирование, то в последнем списке меню нужно выбрать вариант «Удалить правила со всего листа».

Удаление правил условного форматирования со всего листа в Microsoft Excel

Способ 5: удаление пользовательских стилей

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

  1. Устраняется данная проблема следующим образом. Переходим во вкладку «Главная». На ленте в блоке инструментов «Стили» щелкаем по группе «Стили ячеек».
  2. Переход в окно стилей в Microsoft Excel

  3. Открывается меню стилей. Тут представлены различные стили оформления ячеек, то есть, по сути, зафиксированные сочетания нескольких форматов. В самом верху списка расположен блок «Пользовательские». Как раз данные стили не являются изначально встроенными в Excel, а являются продуктом действий пользователя. При возникновении ошибки, устранение которой мы изучаем, рекомендуется их удалить.
  4. Меню стилей в Microsoft Excel

  5. Проблема заключается в том, что не существует встроенного инструмента массового удаления стилей, поэтому придется каждый из них удалять отдельно. Наводим курсор на конкретный стиль из группы «Пользовательские». Кликаем по нему правой кнопкой мыши и в контекстном меню выбираем вариант «Удалить…».
  6. Удаление стиля в Microsoft Excel

  7. Удаляем таким способом каждый стиль из блока «Пользовательские», пока не останутся только встроенные стили Excel.

Встроенные стили в Microsoft Excel

Способ 6: удаление пользовательских форматов

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

  1. Прежде всего, нам нужно будет открыть окно форматирования. Самый распространенный способ это сделать – кликнуть правой кнопкой мыши по любому месту в документе и из контекстного меню выбрать вариант «Формат ячеек…».
    Переход в окно формат ячеек через контекстное меню в Microsoft Excel

    Также можно, находясь во вкладке «Главная», кликнуть по кнопке «Формат» в блоке «Ячейки» на ленте. В запустившемся меню выбираем пункт «Формат ячеек…».

    Переход в окно формат ячеек через кнопку на ленте в Microsoft Excel

    Ещё один вариант вызова нужного нам окна – это набор сочетания клавиш Ctrl+1 на клавиатуре.

  2. После выполнения любого из действий, которые были описаны выше, запустится окно форматирования. Переходим во вкладку «Число». В блоке параметров «Числовые форматы» производим установку переключателя в позицию «(все форматы)». В правой части данного окна располагается поле, в котором находится перечень всех типов элементов, используемых в данном документе.

    Выделяем курсором каждый из них. Переходить к следующему наименованию удобнее всего при помощи клавиши «Вниз» на клавиатуре в блоке навигации. Если элемент является встроенным, то кнопка «Удалить» под перечнем будет неактивной.

  3. Окно форматирования с неактивной кнопкой Удалить в Microsoft Excel

  4. Как только будет выделен добавленный пользовательский элемент, кнопка «Удалить» станет активной. Жмем на неё. Таким же образом удаляем все наименования пользовательского форматирования в перечне.
  5. Удаление пользовательского формата в окне форматирования в Microsoft Excel

  6. После завершения процедуры обязательно жмем на кнопку «OK» внизу окна.

Закрытие окна форматирования в Microsoft Excel

Способ 7: удаление ненужных листов

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

Кроме того, ненужные листы или листы, где информация дублируется, лучше вообще удалить. Делается это довольно просто.

  1. Кликаем правой кнопкой мыши по ярлыку листа, который следует убрать, расположенному над строкой состояния. Далее в появившемся меню выбираем пункт «Удалить…».
  2. Удаления листа в Microsoft Excel

  3. После этого открывается диалоговое окно, которое требует подтверждение удаления ярлыка. Кликаем в нем по кнопке «Удалить».
  4. Потверждение удаления листа в Microsoft Excel

  5. Вслед за этим выбранный ярлык будет удален из документа, а, следовательно, и все элементы форматирования на нем.

Лист удален в Microsoft Excel

Если нужно удалить несколько последовательно расположенных ярлыков, то кликаем по первому из них левой кнопкой мыши, а затем кликаем по последнему, но только при этом зажав клавишу Shift. Будут выделены все ярлыки, расположенные между данными элементами. Далее процедуру удаления проводим по тому же алгоритму, который был описан выше.

Выделение нескольких листов в Microsoft Excel

Но существуют также скрытые листы, и как раз на них может находиться довольно большое количество различных отформатированных элементов. Чтобы убрать чрезмерное форматирование на этих листах или вообще удалить их, нужно сразу отобразить ярлыки.

  1. Кликаем по любому ярлыку и в контекстном меню выбираем пункт «Показать».
  2. Показ скрытых листов в Microsoft Excel

  3. Открывается список скрытых листов. Выбираем наименование скрытого листа и кликаем по кнопке «OK». После этого он будет отображен на панели.

Выбор скрытого листа в Microsoft Excel

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

Но кроме этого существуют ещё и так называемые суперскрытые листы, которых в списке обычных скрытых листов вы не отыщите. Их можно увидеть и отобразить на панели только через редактор VBA.

  1. Чтобы запустить редактор VBA (редактор макросов), жмем сочетание горячих клавиш Alt+F11. В блоке «Project» выделяем наименование листа. Тут отображаются, как обычные видимые листы, так скрытые и суперскрытые. В нижней области «Properties» смотрим значением параметра «Visible». Если там установлено значение «2-xlSheetVeryHidden», то это и есть суперскрытый лист.
  2. Суперскрытый лист в редакторе макросов в Microsoft Excel

  3. Кликаем по данному параметру и в открывшемся списке выбираем наименование «-1-xlSheetVisible». Затем щелкаем по стандартной кнопке закрытия окна.

Включение видимости листа в редакторе макросов в Microsoft Excel

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

Урок: Что делать, если пропали листы в Экселе

Как видим, самый быстрый и эффективный способ избавится от исследуемой в данном уроке ошибки — это сохранить файл заново с расширением XLSX. Но если этот вариант не сработает или по каким-то причинам не подойдет, то остальные способы решения проблемы потребуют немало времени и усилий от пользователя. К тому же, их всех придется применять в комплексе. Поэтому лучше в процессе создания документа не злоупотреблять избыточным форматированием, чтобы потом не пришлось тратить силы на устранение ошибки.

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

Как удалить лишние стили в Excel

Способ 1. Удаление лишних стилей в Excel при помощи макроса

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

Как удалить лишние стили в Excel

Воспользуемся макросом Excel, который автоматически удалит все такие стили. Для того, чтобы создать макрос, во-первых, необходимо открыть сам редактор макросов Visual Basic. Для этого нажмите комбинацию клавиш Alt+F11, либо зайдите в меню «Разработчик» и нажмите кнопку Visual Basic.

Как удалить лишние стили в Excel

В случае, если у вас в ленте нет меню «Разработчик», то вам нужно его добавить. Для этого нажмите на ленту правой кнопкой и выберите пункт «Настройка ленты…»

Как удалить лишние стили в Excel

В открывшемся окне ставим галочку напротив пункта «Разработчик» и необходимое нам меню появляется на ленте.

Как удалить лишние стили в Excel

Итак, открыли Visual Basic. Выбираем меню «Insert» и в нем команду «Module».

Как удалить лишние стили в Excel

В открывшемся окне вставляем следующий макрос:

Sub StyleKiller()
Dim N As Long, i As Long
With ActiveWorkbook
    N = .Styles.Count
    For i = N To 1 Step -1
        If Not .Styles(i).BuiltIn Then .Styles(i).Delete
    Next i
End With
MsgBox («Лишние стили удалены»)
End Sub

Как удалить лишние стили в Excel

Запускаем макрос, нажав на кнопку Run

Как удалить лишние стили в Excel

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

Как удалить лишние стили в Excel

Закрываем Visual Basic, возвращаемся в Excel. Теперь в стилях остались только те, которые были в Excel по умолчанию.

Как удалить лишние стили в Excel

Способ 2. Удаление стилей в Excel вручную

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

Для того что бы удалить пользовательский стиль откройте окно со стилями и нажмите правой клавишей на тот стиль, который вам не нужен и выберите команду «Удалить».

Как удалить лишние стили в Excel

Стиль удален. Спасибо за прочтение статьи.

Макрос для удаления всех пользовательских стилей в документе

Автор Димычч, 09.12.2014, 09:22

« назад — далее »

Добрый день.
Тема уже поднималась, но не была решена. Прошу помочь создать инструмент для её, хотя бы частичного, решения.
Напомню, чем опасно большое количество стилей в документе:
1. Увеличение объёма файла.
2. Увеличение времени открытия/пересчёта ячеек/сохранения файла.
3. Поскольку о достижении предельного значения стилей в документе (около 65000) эксель никак не сообщает, это может выражаться, например, во внезапном отказе добавлять новые листы, изменять форматы. Также, это может служить причиной вывода сообщения «Слишком много различных форматов ячеек» со всеми вытекающими.
Прошу не путать «Стили» и «Форматы». Документ может быть переполнен стилями и быть неработоспособным, при этом, в нём может быть единственный пустой лист с очищенными форматами. Заразить свой файл этой заразой можно всего лишь скопировав пустой лист из заражённого файла.
Удаление styles.xml — не решение, так как оно удаляет и все видимые форматы в книге.
Имеется макрос, удаляющий бОльшую часть ненужных ситилей:

Sub Del_Styles()
Dim stl As Style
On Error Resume Next
For Each stl In ActiveWorkbook.Styles
If Not stl.BuiltIn Then stl.Delete
Next
End Sub

Прошу помочь расширить его функционал, а именно: перед его запуском выводить запрос «Обнаружено ** стилей. Удалить? да/нет». И после окончания работы также выводить сообщение «Удалено ** стилей. ** осталось». Хочется и Progress-bar с % выполнения, но, думаю, это слишком сложно :)
Первый запрос нужен чтобы просто понять, есть ли необходимость вообще запускать этот макрос, так как он работает иногда по 30-40 мин.
Сведения о количестве стилей содержатся в styles.xml в разделах «cellStyleXfs count» и «cellXfs count».


Sub Del_Styles()
Dim stl As Style, S, col&, Scol&
On Error Resume Next
Scol = ActiveWorkbook.Styles.Count
S = MsgBox("Обнаружено " & Scol & " стилей. УДАЛИТЬ?", vbYesNo)
If S = vbYes Then
  For Each stl In ActiveWorkbook.Styles
  If Not stl.BuiltIn Then
  stl.Delete
  col = col + 1
  End If
  Next
End If
MsgBox "Удалено " & col & " стилей. " & Scol - col & " осталось."
End Sub

Progress-bar пока не приходилось делать так что моих знаний здесь возможно маловато для его создания.


Здорово! Всё работает!
Маленький нюанс: если в первом окне ответить НЕТ, то открывается второе, с нулевым результатом удаления. Логичнее было бы ничего не отображать после нажатия на НЕТ.
Интересное наблюдение: имеется файлик 800Кб, у него только одна табличка 20х8 на единственном листе. Запускаем макрос, видим «обнаружено 44000 стилей», макрос работает 19 минут над этим малышом, остаток — 45 стилей. Запускаю его повторно, вижу уже 316, чищу, вижу 45, и т.д. То есть остаются какие то неудаляемые. (вложение 3вв)


Цитата: Димычч от 09.12.2014, 11:52
Логичнее было бы ничего не отображать после нажатия на НЕТ.

перенесите последнее msgbox перед последим end if
47 заводских стиля у меня — они будут всегда оставаться.
про остальные ничего не скажу, знаний маловато.


Спасибо, всё работает в лучшем виде!


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Макрос для удаления всех пользовательских стилей в документе

Stop wasting time and follow this tip! This shows you the fastest and easiest way to remove all formatting from cells in Excel.

This Excel Quickie covers a great tip that removes all formatting from cells without harming or altering the data in the worksheet.

Types of formatting that this tip will remove:

  • conditional formatting
  • text formatting
  • cell formatting
  • number formatting
  • colors, font’s, and more

This little tip will save you a lot of time, I guarantee it!

I hope you enjoy this Excel Quickie!


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Quickly Clear all Formatting in Excel

Tutorial:
How to remove all formatting from cells at once in Excel.

This includes removing any and…

Easy Way to Manage Names in Excel

Tutorial:
How to manage Names in Excel so they are easy to view and change as needed.

This is a li…

Make Complex Formulas for Conditional Formatting in Excel

Tutorial: How to make complex formulas for conditional formatting rules in Excel. This will serve as…

Quickly Copy Cell Formatting to Other Cells in Excel

Tutorial: How to copy all of the formatting of a single cell to other cells in the spreadsheet witho…

Format Cells in The General (default) Format in Excel Number Formatting

Macro: This free Excel macro formats a selected cell or range of cells to the General number form…

How to Add Boxes, Buttons, Arrows, Speech-Bubbles, Hearts, and More to a Spreadsheet in Excel

Tutorial: In this tutorial I am going to cover inserting and editing Shapes in an Excel workbook, as…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Метод Range.Clear для полной очистки диапазона ячеек из кода VBA Excel. Методы очистки отдельных свойств и их групп в ячейках. Примеры использования.

Методы очистки ячеек

Метод Очищаемые свойства Примечание
Range.Clear Почти все свойства Ширина и высота ячеек не изменяются
Range.ClearComments Комментарии Для Excel в составе Office 365
Range.ClearContents Формулы и значения Исходное форматирование сохраняется
Range.ClearFormats Свойства, задающие форматы В том числе отмена объединения ячеек
Range.ClearHyperlinks Гиперссылки Текст и форматирование сохраняются
Range.ClearNotes Примечания и заметки Примечания – для локальных программ Excel, заметки – для Excel в составе Office 365
Range.ClearOutline Структура данных Смотрите, что такое структурирование данных

Range – выражение, возвращающее диапазон ячеек.

Примеры использования

1. Удаление гиперссылки из ячейки A1
Cells(1, 1).ClearHyperlinks

2. Очистка диапазона A1:L50 от формул и значений
Range("A1:L50").ClearContents

3. Очистка всех свойств ячеек в столбцах A:K
Columns("A:K").Clear

4. Очистка форматирования ячеек в строках 1:20
Rows("1:20").ClearFormats

Методы очистки диапазонов ячеек в VBA Excel возвращают очищаемые свойства ячеек к значениям по умолчанию. К таким, как на вновь созданном стандартном рабочем листе. При любых методах очистки высота строк и ширина столбцов не изменяются.


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


Как массово очистить форматы ячеек

Sopilkar

Дата: Вторник, 26.01.2016, 14:47 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Уважаемые!
Подскажите, как массово очистить пользовательские форматы, а то достался файл от предшественника, а там все вот так, как на рисунке.

По одному удалять можно бесконечно долго, а стандартная справка про массовое удаление форматов молчит.
Спасибо

К сообщению приложен файл:

3633730.png
(62.4 Kb)


Семейный ансамбль «Весенняя свирель»

 

Ответить

Udik

Дата: Вторник, 26.01.2016, 14:54 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 1588


Репутация:

192

±

Замечаний:
0% ±


Excel 2016 х 64

попробуйте

только вначале диапазон выделите :)

К сообщению приложен файл:

7090894.jpg
(63.5 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com

Сообщение отредактировал UdikВторник, 26.01.2016, 14:56

 

Ответить

Sopilkar

Дата: Вторник, 26.01.2016, 14:58 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

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


Семейный ансамбль «Весенняя свирель»

 

Ответить

китин

Дата: Вторник, 26.01.2016, 15:00 |
Сообщение № 4

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

посмотрите ТУТ


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Sopilkar

Дата: Вторник, 26.01.2016, 15:04 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

китин, Спасибо, кажется, это именно то, что нужно.
Почитаю, попробую воплотить. =0)
По результатам отпишусь.


Семейный ансамбль «Весенняя свирель»

 

Ответить

Sopilkar

Дата: Вторник, 26.01.2016, 15:23 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

В общем, статья

помогла, но исправила ситуацию не до конца.
Теперь хоть понятно, что речь идет не сколько о форматах, сколько о стилях.
Результат работы макроса — на картинке, кто захочет, сравнит с предыдущей. =))
Грязи стало гораздо меньше, но она осталась… судя по всему, без ручной работы не обойтись.
Всем спасибо.

К сообщению приложен файл:

4229182.png
(57.9 Kb)


Семейный ансамбль «Весенняя свирель»

 

Ответить

krosav4ig

Дата: Вторник, 26.01.2016, 15:24 |
Сообщение № 7

Группа: Друзья

Ранг: Старожил

Сообщений: 2346


Репутация:

989

±

Замечаний:
0% ±


Excel 2007,2010,2013

как очистить сам НАБОР (или как его там назвать) форматов

макросом (Что такое макросы VBA в Excel?)
[vba]

Код

Option Explicit
Sub dd()
    Dim st As Style
    For Each st In ActiveWorkbook.Styles
    If Not st.BuiltIn Then st.Delete
    Next
End Sub

[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

 

Ответить

Sopilkar

Дата: Вторник, 26.01.2016, 15:29 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

krosav4ig,
Могу скрин приложить, можете на слово поверить — Метод Delete из класса Style завершен неверно.


Семейный ансамбль «Весенняя свирель»

 

Ответить

krosav4ig

Дата: Среда, 27.01.2016, 22:57 |
Сообщение № 9

Группа: Друзья

Ранг: Старожил

Сообщений: 2346


Репутация:

989

±

Замечаний:
0% ±


Excel 2007,2010,2013

как вариант, открываем файл архиватором, в файле xlstyles.xml заменяем

Цитата

<cellStyleXfs count=»…»><xf numFmtId=»0″ fontId=»0″ fillId=»0″ borderId=»0″/>…</cellStyleXfs>

на

Цитата

<cellStyleXfs count=»1″><xf numFmtId=»0″ fontId=»0″ fillId=»0″ borderId=»0″/></cellStyleXfs>

и

Цитата

<cellStyles count=»…»>…<cellStyle name=»Обычный» xfId=»0″ builtinId=»0″/></cellStyles>

на

Цитата

<cellStyles count=»1″><cellStyle name=»Обычный» xfId=»0″ builtinId=»0″/></cellStyles>


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4igСреда, 27.01.2016, 22:58

 

Ответить

Sopilkar

Дата: Четверг, 28.01.2016, 00:47 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

krosav4ig, спасибо, на работе попробую!


Семейный ансамбль «Весенняя свирель»

 

Ответить

Skip to content

Как удалить формат ячеек в Excel

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

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

Еще один, более редкий, случай – когда Excel  показывает вам ошибку «Слишком много различных форматов ячеек». 

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

  • для Excel 2003 – это 4000 форматов (файл с расширением .xls)
  • для Excel 2007 и новее – это 64000 (файл .xlsx)

Причем под форматом в данном случае понимается любая уникальная комбинация параметров:

  • шрифт
  • заливка
  • границы ячеек
  • числовой формат
  • условное форматирование

Так, например, если вы оформили небольшой фрагмент листа подобным образом:

… то Excel запомнит в книге 9 разных форматов ячеек, а не 2, как кажется на первый взгляд. Ведь толстая линия по периметру создаст, фактически 8 различных вариантов. Тяга к красоте в большом отчете приведет к появлению сотен и тысяч подобных комбинаций, которые Excel будет вынужден запоминать. Размер файла от этого, само собой, увеличивается.

Что же делать? Если у вас файл старого образца, сохраните его с расширением .xlsx

Ну а если это не спасает, тогда придется удалять лишнее.

 Изменение цвета, шрифта, границ, выравнивания и других форматов ячеек вручную было бы утомительным и трудоемким. К счастью, Microsoft Excel предоставляет несколько быстрых и простых способов очистить форматирование рабочего листа. 

Функция очистки форматов.

Сделайте следующее:

  1. Выберите ячейку или диапазон ячеек, из которых вы хотите удалить оформление.
  2. На вкладке Главная в группе Редактирование щелкните стрелку рядом с кнопкой Очистить.
  3. Выберите «Очистить форматы» .

очистить форсват в Excel

Это удалит все форматирование ячеек (включая условное форматирование, числовые форматы, шрифты, цвета, границы и т. д.), но сохранит содержимое ячейки.

Советы по очистке формата.

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

  • Чтобы очистить форматирование от всех ячеек на листе, выберите весь лист, нажав Ctrl + A или, нажав  треугольник в верхнем левом углу рабочего листа, а затем используйте кнопку Очистить форматы .
  • Дабы удалить форматирование из всего столбца или строки, щелкните заголовок столбца или строки, чтобы выбрать их целиком.
  • Если сделать эту операцию в несмежных ячейках или диапазонах, то выберите начальную точку, нажмите и удерживайте CTRL и затем выбирайте дальше другие ячейки или области.

Если вы хотите использовать этот инструмент буквально в один клик, вы можете добавить параметр «Очистить форматы» на панель инструментов быстрого доступа или на ленту Excel. Это может быть особенно полезно, если вы получаете много файлов от своих коллег или клиентов, и они нуждаются в том, чтобы представить данные так, как вы хотите.

Добавьте параметр «Очистить форматы» на панель быстрого доступа.

Если приходится часто выполнять подобные операции, то вы можете добавить иконку очистки на панель быстрого доступа в верхнем левом углу:

Для этого выполните следующие действия:

  1. На листе Excel щелкните Файл > Параметры, а затем выберите Панель быстрого доступа на левой панели.
  2. В разделе «Выбрать команды из» выберите «Все команды».
  3. Прокрутите список команд до пункта «Очистить форматы», выберите его и нажмите кнопку «Добавить», чтобы переместить его в правую часть.
  4. Щелкните ОК.

Как можно использовать «Формат по образцу».

Думаю, все знают, как использовать этот инструмент для копирования форматирования в Excel. Но задумывались ли вы, что его также можно использовать для удаления формата? Все, что требуется, – это 3 быстрых шага:

  1. Выделите любую неформатированную ячейку недалеко от ячейки, из которой вы хотите удалить все элементы оформления.
  2. Нажмите кнопку «Формат по образцу» на вкладке «Главная» в группе «Буфер обмена».
  3. Укажите ячейку или диапазон, где нужно сделать очистку.

Вот и все!

Например, если вы выделили только одно слово в ячейке цветом, как показано на скриншоте ниже, такое форматирование не будет удалено:

Мы рассмотрели основные способы, чтобы убрать форматирование в ячейках таблицы Excel.

Формат времени в Excel Вы узнаете об особенностях формата времени Excel, как записать его в часах, минутах или секундах, как перевести в число или текст, а также о том, как добавить время с помощью…
как форматировать Google таблицу Как сделать пользовательский числовой формат в Excel В этом руководстве объясняются основы форматирования чисел в Excel и предоставляется подробное руководство по созданию настраиваемого пользователем формата. Вы узнаете, как отображать нужное количество десятичных знаков, изменять выравнивание или цвет шрифта,…
7 способов поменять формат ячеек в Excel Мы рассмотрим, какие форматы данных используются в Excel.  Кроме того, расскажем, как можно быстро изменять внешний вид ячеек самыми различными способами. Когда дело доходит до форматирования ячеек в Excel, большинство…
8 способов разделить ячейку Excel на две или несколько Как разделить ячейку в Excel? С помощью функции «Текст по столбцам», мгновенного заполнения, формул или вставив в нее фигуру. В этом руководстве описаны все варианты, которые помогут вам выбрать технику, наиболее подходящую…

Понравилась статья? Поделить с друзьями:
  • Макрос для очистки листа excel
  • Макрос для отправки файла excel по почте
  • Макрос для открытия формы excel
  • Макрос для открытия файла word
  • Макрос для открытия листа excel