Содержание:
Это может случиться и с вами.
При работе с большой книгой в Excel в один совсем не чудесный момент вы делаете что-то совершенно безобидное (добавляете строку или вставляете большой фрагмент ячеек, например) и вдруг получаете окно с ошибкой «Слишком много разных ячеек» форматы»:
Иногда эта проблема проявляется в еще более неприятной форме. Вчера вечером вы, как обычно, сохранили и закрыли свой отчет в Excel, а сегодня утром не можете его открыть — отображается аналогичное сообщение и предложение удалить из файла все форматирование. Радости мало, согласны? Давайте разберемся в причинах и способах исправления данной ситуации.
Почему это происходит
Эта ошибка возникает, когда книга превышает максимальное количество форматов, которые Excel может хранить:
- для Excel 2003 и старше – это 4000 форматов
- для Excel 2007 и новее это 64000 форматов
Причем под форматом в данном случае подразумевается любая уникальная комбинация параметров форматирования:
- шрифт
- пломб
- клеточный каркас
- числовой формат
- условное форматирование
Так, например, если вы стилизовали небольшой фрагмент листа следующим образом:
…тогда Excel запомнит 9 разных форматов ячеек в книге, а не 2, как кажется на первый взгляд, потому что толстая линия по периметру создаст, по сути, 8 разных вариантов форматирования. Добавьте к этому дизайнерские танцы со шрифтами и заливками, и тяга к красоте в большом отчете приведет к сотням и тысячам подобных комбинаций, которые Excel придется запомнить. Размер файла от этого сам по себе тоже не уменьшается.
Подобная проблема также часто возникает при многократном копировании в книгу фрагментов из других файлов (например, при сборке листов макросом или вручную). Если не используется специальная вставка только значений, то в книгу вставляются и форматы скопированных диапазонов, что очень быстро приводит к превышению лимита.
Как с этим бороться
Здесь есть несколько направлений:
- Если у вас есть файл старого формата (xls), то пересохраните его в новый (xlsx или xlsm). Это сразу поднимет планку с 4000 до 64000 различных форматов.
- Удалите лишнее форматирование ячеек и лишние «красивости» командой Главная — Очистить — Очистить форматы (Главная страница — Очистить — Очистить форматирование). Проверьте, есть ли на листах строки или столбцы, отформатированные целиком (т. е. до конца листа). Не забывайте о возможных скрытых строках и столбцах.
- Проверьте книгу на наличие скрытых и сверхскрытых листов – иногда на них спрятаны «шедевры».
- Удаление нежелательного условного форматирования на вкладке Главная страница — Условное форматирование — Управление правилами — Показать правила форматирования для всего листа (Главная страница — Условное форматирование — Показать правила для этого листа).
- Проверьте, не накопилось ли у вас избыточное количество ненужных стилей после копирования данных из других книг. Если на вкладке Главная (Главная) В списке Стили (Стили) огромное количество «мусора»:
…тогда от этого можно избавиться с помощью небольшого макроса. Нажмите Alt + F11 или кнопка Визуальный Бейсик таб разработчик (Разработчик), вставляем новый модуль через меню Вставка – Модуль и скопируйте туда код макроса:
Sub Reset_Styles() 'удаляем все ненужные стили для каждого objStyle в ActiveWorkbook.Styles При ошибке Возобновить далее, если нет objStyle.BuiltIn Тогда objStyle.Delete При ошибке GoTo 0 Далее objStyle 'копируем стандартный набор стилей из новой книги Set wbMy = ActiveWorkbook Set wbNew = Workbooks.Add wbMy.Styles.Merge wbNew wbNew.Close savechanges:=False End Sub
Вы можете запустить его с помощью сочетания клавиш. Alt + F8 или по кнопке Макрос (Макросы) таб разработчик (Разработчик). Макрос удалит все неиспользуемые стили, оставив только стандартный набор:
- Как автоматически выделять ячейки с условным форматированием в Excel
- Что такое макросы, куда и как копировать код макроса в Visual Basic, как их запускать
- Книга Excel стала очень тяжелой и медленной – как это исправить?