Удаление лишних стилей в excel

При работе с книгами 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

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

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

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

Работая с большой книгой в 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 стала очень тяжелой и медленной — как исправить?

А тема то по сей день актуальная. Вот и я столкнулся с медленным открытием файлов из за раздувшегося списка стилей в файле. Вставлял страницы наших Kорейских коллег — вот и довставлялся. 1599 стилей.
Поди-ка вручную поудаляй.
Стилями не пользуюсь, но форматирование страниц специфическое, по этому не хотелось рисковать оформлением удаляя файл «styles.xml»
Вот только я не понял — почему никому не пришло в голову править данный файл?

(Сразу приношу извинения, у меня Excell 2010, но думаю разница с 2007 в данном контексте не особо существенная).

Мое решение:
Открываем файл в текстовом редакторе с возможностью поиска-замены (я пользовался Word-ом, он позволяет искать и вставлять спецсимволы, что удобно).
Файл представляет из себя простыню параметров без переносов строки, что не очень читаемо.
Во второй половине файла видим такие строки примерно:

</cellXfs>
<cellStyles count=»1599″>

а дальше идет указанное число параметров (1599) такого вида:

<cellStyle xfId=»94″ name=»20% — 강조색3 22″/>
<cellStyle xfId=»118″ name=»20% — 강조색3 9″/>
и т.д. (в текстовом редакторе переносов нет, всё в одну строку)

А заканчивается всё это великолепие строкой
</cellStyles>

Ну в моем случае все просто — мне предстояло вырезать те стили, названия которых были на корейском языке.
Чтобы было читабельно сделал автозамену:
«<cellStyle»   меняем на   «^p<cellStyle»
Эта замена вставляет перед каждым стилем перенос строки.
— Просматриваем , выделяем и удаляем ненужные стили.
— Считаем оставшиеся
— Вносим соответствующее количество в параметр <cellStyles count=»     «>
(я оставил один, соответственно поставил единицу).

Сориентироваться на самом деле легко — в интерфейсе Excell во вкладке со стилями показаны имена стилей, можно выписать те, что нужны — их оставить, остальные — удалить.

После этого удаляем спецсимволы (опять же автозаменой «^p» заменить на «»), сохраняем.
Впрочем я спецсимволы не удалял — забыл, и всё равно заработало.
Собственно всё. Лишних стилей больше нет, заработало всё нормально, оформление не слетело.

ЗЫ:
Если есть грамотные специалисты — прошу пояснить назначение параметров вида
<xf numFmtId=»0″ fontId=»111″ fillId=»32″ borderId=»0″ applyNumberFormat=»0″ applyBorder=»0″ applyAlignment=»0″ applyProtection=»0″><alignment vertical=»center»/></xf>
из первой половины файла стилей.
Странно, что записи этого вида дублируются в огромном количестве друг за другом практически без изменений. Подозреваю, что они также как-то связаны с удаленными стилями, но их вырезать побоялся :)

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

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

Пример готовых стилей ячеек

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

Важно: Стили ячеок основаны на теме документа, которая применяется во всей книге. При переключении на другую тему документа стили ячеок обновляются в соответствие с новой темой документа.

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

  2. На вкладке Главная в группе Стили щелкните стрелку «Дополнительные» в коллекции стилей и выберите стиль ячейки, который вы хотите применить.

    Стрелка "Еще" в коллекции "Стили"

  1. На вкладке Главная в группе Стили щелкните стрелку в группе Дополнительные стили в коллекции стилей и в нижней части коллекции выберите новый стиль ячейки.

  2. В поле Имя стиля введите соответствующее имя для нового стиля ячейки.

  3. Нажмите кнопку Формат.

  4. На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.

  5. В диалоговом окне Стиль в области Стили (по примеру)сберите флажки для форматирования, которое не нужно включать в стиль ячейки.

  6. Нажмите кнопку ОК.

  1. На вкладке Главная в группе Стили щелкните стрелку стрелки «Еще» в коллекции стилей.

    Стрелка "Еще" в коллекции "Стили"

  2. Выполните одно из указанных ниже действий.

    • Чтобы изменить существующий стиль ячейки, щелкните его правой кнопкой мыши и выберите изменить.

    • Чтобы создать дубликат существующего стиля ячейки, щелкните его правой кнопкой мыши и выберите дублировать.

  3. В поле Имя стиля введите соответствующее имя для нового стиля ячейки.

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

  4. Чтобы изменить стиль ячейки, нажмите кнопку Формат.

  5. На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.

  6. В диалоговом окне Стиль в области Стили : ,выберите или сберите флажки для форматирования, которые вы или не хотите включать в стиль ячейки.

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

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

  2. На вкладке Главная в группе Стили щелкните стрелку стрелки «Еще» в коллекции стилей.

    Стрелка "Еще" в коллекции "Стили"

  3. В области Хорошее, Плохое и Нейтральныйвыберите обычный.

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

  1. На вкладке Главная в группе Стили щелкните стрелку стрелки «Еще» в коллекции стилей.

    Стрелка "Еще" в коллекции "Стили"

  2. Чтобы удалить готовый или пользовательский стиль ячеек и удалить его из всех отформатированной ячейки, щелкните правой кнопкой мыши стиль ячеек и выберите удалить .

    Примечание: Удалить стиль ячейки «Обычный» невозможно.

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

  2. На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.

    Изображение ленты Excel

    Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные Кнопка "Дополнительные параметры"рядом с полем стили ячеок.

  3. Выберите стиль ячейки, который вы хотите применить.

  1. На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.

    Изображение ленты Excel

    Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные Кнопка "Дополнительные параметры"рядом с полем стили ячеок.

  2. Выберите команду Создать стиль ячейки.

  3. В поле Имя стиля введите соответствующее имя для нового стиля ячейки.

  4. Нажмите кнопку Формат.

  5. На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.

  6. В диалоговом окне Стиль в области Стили (по примеру)сберите флажки для форматирования, которое не нужно включать в стиль ячейки.

  1. На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.

    Изображение ленты Excel

    Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные Кнопка "Дополнительные параметры"рядом с полем стили ячеок.

  2. Выполните одно из указанных ниже действий.

    • Чтобы изменить существующий стиль ячейки, щелкните его правой кнопкой мыши и выберите изменить.

    • Чтобы создать дубликат существующего стиля ячейки, щелкните его правой кнопкой мыши и выберите дублировать.

  3. В поле Имя стиля введите соответствующее имя для нового стиля ячейки.

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

  4. Чтобы изменить стиль ячейки, нажмите кнопку Формат.

  5. На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.

  6. В диалоговом окне Стиль в области Стили : ,выберите или сберите флажки для форматирования, которые вы или не хотите включать в стиль ячейки.

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

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

  2. На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.

    Изображение ленты Excel

    Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные Кнопка "Дополнительные параметры"рядом с полем стили ячеок.

  3. В области Хорошее, Плохое и Нейтральныйвыберите обычный.

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

  1. На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.

    Изображение ленты Excel

    Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные Кнопка "Дополнительные параметры"рядом с полем стили ячеок.

  2. Чтобы удалить готовый или пользовательский стиль ячеек и удалить его из всех отформатированной ячейки, щелкните правой кнопкой мыши стиль ячеек и выберите удалить .

    Примечание: Удалить стиль ячейки «Обычный» невозможно.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Нужна дополнительная помощь?

Переполнение коллекции стилей ячеек

Excel файл может содержать не более 65535 стилей ячеек (доступны через меню ГЛАВНАЯ — Стили ячеек). Не совсем понятно как это достигается на практике (создание стиля довольно трудоемкая операция, если только генерировать их программно), но периодически приходится сталкиваться с файлами, которые вплотную подошли к данному пределу и при попытке отформатировать любую ячейку вы получаете следующую ошибку:

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

Данная проблема не решается через пользовательский интерфейс Excel — необходима специальная программа, которая очистит таблицу стилей принудительно.

Большое количество именованных диапазонов

Второй возможный недуг, с которым борется моя утилита, состоит в том, что книга Excel может содержать огромное количество именованных диапазонов. При этом, иногда, их даже невозможно удалить через Диспетчер имён (Ctrl+F3), так как они могут быть повреждены. Признаком наличия в файле большого количества именованных диапазонов является огромное количество вопросов, которые задаёт вам Excel при попытке скопировать лист книги в саму себя. Данная проблема также имеет свойство «заражать» файлы и сохраняться длительное время.

Утилита CureExcel

Алгоритм ваших действий:

  1. Открыть файл CureExcel.xlsb

  2. Открыть в Excel предположительно «больной» файл

  3. В CureExcel нажать кнопку «Cure Excel» — откроется следующая форма

  4. В выпадающем списке выбрать ваш ранее открытый файл

  5. Нажать кнопку «Диагностика»

  6. Ознакомиться с выводом программы и её рекомендацией

  7. В случае наличия рекомендации по лечению, нажать кнопку «Лечить», подтвердить запуск операций

  8. Дождаться окончания процедуры. Стили удаляются довольно долго (65 000 стилей удаляются примерно 5-7 минут). Прогресс
    виден по статусной строке Excel. По окончании процедуры выводится статистика проделанных операций и достигнутого
    результата.

  9. Оригинальный файл остаётся неизменным, а исправленный файл с суффиксом «_CURE» сохраняется в той же
    папке, то есть операции совершенно безопасны.

Файлы для скачивания

Скачать утилиту CureExcel

Скачать пример файла с большим количеством стилей

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