При работе с книгами Excel, особенно при копировании листов из одной книги в другую, можно столкнуться с ситуацией, когда в файле появляется множество лишнего «хлама», в том числе дополнительных стилей оформления ячеек, которые вам не нужны и которые следует удалить, так как они увеличивают размер файла. Рассмотрим два способа, как можно удалить стили в Excel.
Способ 1. Удаление лишних стилей в Excel при помощи макроса
Для примера я создал три пользовательских стиля, которые не использую в книге (в реальной жизни их может быть тысячи), которые необходимо удалить.
Воспользуемся макросом Excel, который автоматически удалит все такие стили. Для того, чтобы создать макрос, во-первых, необходимо открыть сам редактор макросов Visual Basic. Для этого нажмите комбинацию клавиш Alt+F11, либо зайдите в меню «Разработчик» и нажмите кнопку Visual Basic.
В случае, если у вас в ленте нет меню «Разработчик», то вам нужно его добавить. Для этого нажмите на ленту правой кнопкой и выберите пункт «Настройка ленты…»
В открывшемся окне ставим галочку напротив пункта «Разработчик» и необходимое нам меню появляется на ленте.
Итак, открыли Visual Basic. Выбираем меню «Insert» и в нем команду «Module».
В открывшемся окне вставляем следующий макрос:
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
Запускаем макрос, нажав на кнопку Run
После того, как макрос отработает (это может занять длительное время в случае, если пользовательских стилей очень много), вам будет выведено сообщение, что лишние стили удалены.
Закрываем Visual Basic, возвращаемся в Excel. Теперь в стилях остались только те, которые были в Excel по умолчанию.
Способ 2. Удаление стилей в 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>
из первой половины файла стилей.
Странно, что записи этого вида дублируются в огромном количестве друг за другом практически без изменений. Подозреваю, что они также как-то связаны с удаленными стилями, но их вырезать побоялся
bedvit
Пользователь
Сообщений: 2477
Регистрация: 02.04.2015
Виталий
tatius, в этом файле 27 листов, да еще и данными, нам бы хватило одного, и не в облаке, в самом сообщении (загрузить фалы). Способа удалить битый стиль не знаю (возможно подскажут спецы в этом вопросе), но знаю как удалить ВСЕ пользовательские стили.
1.Открываете файл архиватором «МССЗ11.xlsx» (к примеру winrar)
2.Ищите папку «xl», заходите в нее и удаляете файл «styles.xml»
3.Сохраняете изменения архиватором
4.Открываете файл и на все вопросы по восстановлению говорите «Да».
«Бритва Оккама» или «Принцип Калашникова»?
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
Чтобы применить несколько форматов за один шаг и убедиться в том, что форматирование ячеек согласовано, можно использовать стиль ячейки. Стиль ячейки — это определенный набор характеристик форматирования, таких как шрифты и размеры шрифтов, форматы номеров, границы ячеок и затенение ячеок. Чтобы запретить внесение изменений в определенные ячейки, можно также использовать стиль ячейки, который блокирует ячейки.
Microsoft Office Excel есть несколько встроенных стилей ячеок, которые можно применять и изменять. Вы также можете изменить или продублировать стиль ячейки, чтобы создать собственный пользовательский стиль ячейки.
Важно: Стили ячеок основаны на теме документа, которая применяется во всей книге. При переключении на другую тему документа стили ячеок обновляются в соответствие с новой темой документа.
-
Выделите ячейки, которые нужно отформатировать. Дополнительные сведения см. в статье Выбор ячеек, диапазонов, строк и столбцов на сайте.
-
На вкладке Главная в группе Стили щелкните стрелку «Дополнительные» в коллекции стилей и выберите стиль ячейки, который вы хотите применить.
-
На вкладке Главная в группе Стили щелкните стрелку в группе Дополнительные стили в коллекции стилей и в нижней части коллекции выберите новый стиль ячейки.
-
В поле Имя стиля введите соответствующее имя для нового стиля ячейки.
-
Нажмите кнопку Формат.
-
На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.
-
В диалоговом окне Стиль в области Стили (по примеру)сберите флажки для форматирования, которое не нужно включать в стиль ячейки.
-
Нажмите кнопку ОК.
-
На вкладке Главная в группе Стили щелкните стрелку стрелки «Еще» в коллекции стилей.
-
Выполните одно из указанных ниже действий.
-
Чтобы изменить существующий стиль ячейки, щелкните его правой кнопкой мыши и выберите изменить.
-
Чтобы создать дубликат существующего стиля ячейки, щелкните его правой кнопкой мыши и выберите дублировать.
-
-
В поле Имя стиля введите соответствующее имя для нового стиля ячейки.
Примечание: В список пользовательских стилей ячеев добавляются повторяющиеся стили ячеев и переименованные. Если не переименовать встроенный стиль ячейки, он будет обновляться с внесением изменений.
-
Чтобы изменить стиль ячейки, нажмите кнопку Формат.
-
На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.
-
В диалоговом окне Стиль в области Стили : ,выберите или сберите флажки для форматирования, которые вы или не хотите включать в стиль ячейки.
Стиль ячеек можно удалить из данных в выбранных ячейках, не удаляя стиль ячеек.
-
Вы можете выбрать ячейки, отформатированные с помощью стиля ячейки, который вы хотите удалить. Дополнительные сведения см. в статье Выбор ячеек, диапазонов, строк и столбцов на сайте.
-
На вкладке Главная в группе Стили щелкните стрелку стрелки «Еще» в коллекции стилей.
-
В области Хорошее, Плохое и Нейтральныйвыберите обычный.
Вы можете удалить предопределенный или пользовательский стиль ячеок, чтобы удалить его из списка доступных стилей ячеев. При удалении стиля ячейки он также удаляется из всех ячеек, отформатированные с ним.
-
На вкладке Главная в группе Стили щелкните стрелку стрелки «Еще» в коллекции стилей.
-
Чтобы удалить готовый или пользовательский стиль ячеек и удалить его из всех отформатированной ячейки, щелкните правой кнопкой мыши стиль ячеек и выберите удалить .
Примечание: Удалить стиль ячейки «Обычный» невозможно.
-
Выделите ячейки, которые нужно отформатировать. Дополнительные сведения см. в статье Выбор ячеек, диапазонов, строк и столбцов на сайте.
-
На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.
Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные рядом с полем стили ячеок.
-
Выберите стиль ячейки, который вы хотите применить.
-
На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.
Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные рядом с полем стили ячеок.
-
Выберите команду Создать стиль ячейки.
-
В поле Имя стиля введите соответствующее имя для нового стиля ячейки.
-
Нажмите кнопку Формат.
-
На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.
-
В диалоговом окне Стиль в области Стили (по примеру)сберите флажки для форматирования, которое не нужно включать в стиль ячейки.
-
На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.
Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные рядом с полем стили ячеок.
-
Выполните одно из указанных ниже действий.
-
Чтобы изменить существующий стиль ячейки, щелкните его правой кнопкой мыши и выберите изменить.
-
Чтобы создать дубликат существующего стиля ячейки, щелкните его правой кнопкой мыши и выберите дублировать.
-
-
В поле Имя стиля введите соответствующее имя для нового стиля ячейки.
Примечание: В список пользовательских стилей ячеев добавляются повторяющиеся стили ячеев и переименованные. Если не переименовать встроенный стиль ячейки, он будет обновляться с внесением изменений.
-
Чтобы изменить стиль ячейки, нажмите кнопку Формат.
-
На различных вкладках в диалоговом окне Формат ячеек выберите нужное форматирование и нажмите кнопку ОК.
-
В диалоговом окне Стиль в области Стили : ,выберите или сберите флажки для форматирования, которые вы или не хотите включать в стиль ячейки.
Стиль ячеек можно удалить из данных в выбранных ячейках, не удаляя стиль ячеек.
-
Вы можете выбрать ячейки, отформатированные с помощью стиля ячейки, который вы хотите удалить. Дополнительные сведения см. в статье Выбор ячеек, диапазонов, строк и столбцов на сайте.
-
На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.
Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные рядом с полем стили ячеок.
-
В области Хорошее, Плохое и Нейтральныйвыберите обычный.
Вы можете удалить предопределенный или пользовательский стиль ячеок, чтобы удалить его из списка доступных стилей ячеев. При удалении стиля ячейки он также удаляется из всех ячеек, отформатированные с ним.
-
На вкладке Главная в группе Стили нажмите кнопку Стили ячеек.
Совет: Если вы не видите кнопку Стили ячеок, щелкните Стили инажмите кнопку Дополнительные рядом с полем стили ячеок.
-
Чтобы удалить готовый или пользовательский стиль ячеек и удалить его из всех отформатированной ячейки, щелкните правой кнопкой мыши стиль ячеек и выберите удалить .
Примечание: Удалить стиль ячейки «Обычный» невозможно.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Нужна дополнительная помощь?
Ладно, это было не так сложно сделать, как я сначала подумал.
Немного грязно, так как я не часто использую VBA; но этот код откатится до стилей по умолчанию:
Sub DefaultStyles()
Dim MyBook As Workbook
Dim tempBook As Workbook
Dim CurStyle As Style
Set MyBook = ActiveWorkbook
On Error Resume Next
For Each CurStyle In MyBook.Styles
Select Case CurStyle.Name
Case "20% - Accent1", "20% - Accent2", _
"20% - Accent3", "20% - Accent4", "20% - Accent5", "20% - Accent6", _
"40% - Accent1", "40% - Accent2", "40% - Accent3", "40% - Accent4", _
"40% - Accent5", "40% - Accent6", "60% - Accent1", "60% - Accent2", _
"60% - Accent3", "60% - Accent4", "60% - Accent5", "60% - Accent6", _
"Accent1", "Accent2", "Accent3", "Accent4", "Accent5", "Accent6", _
"Bad", "Calculation", "Check Cell", "Comma", "Comma [0]", "Currency", _
"Currency [0]", "Explanatory Text", "Good", "Heading 1", "Heading 2", _
"Heading 3", "Heading 4", "Input", "Linked Cell", "Neutral", "Normal", _
"Note", "Output", "Percent", "Title", "Total", "Warning Text"
Case Else
CurStyle.Delete
End Select
Next CurStyle
Set tempBook = Workbooks.Add
Application.DisplayAlerts = False
MyBook.Styles.Merge Workbook:=tempBook
Application.DisplayAlerts = True
tempBook.Close
End Sub