Используемый диапазон Excel содержит целые столбцы

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

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

Вот что я пытаюсь сделать:

  • Я выбираю неиспользуемый раздел целых строк (или столбцов, или обоих последовательно) и щелкаю правой кнопкой мыши -> удалить. Делает трюк в 95 % случаев.
  • Если это не сработает, я удвойте, а также "очистите все" (вкладка "Главная" -> очистить -> очистить все) используемые строки и удалите все условное форматирование со всего листа, а затем снова удалите неиспользуемые строки.
  • Если у меня все еще не получается, я перехожу на VBA, делаю ActiveSheet.UsedRange в окне "Немедленно", чтобы принудительно "пересчитать" используемый диапазон. Если это не сработает, я попробую еще раз, но после удаления неиспользуемых строк и/или столбцов.

Теперь у меня на руках рабочая тетрадь, которая не уменьшает свой размер даже после последний трюк. Используется чрезмерное количество строк (а именно: все). Я заметил из VBA, что, по-видимому, используются целые столбцы , так как ActiveSheet.UsedRange.Address имеет значение $A:$EM - нет номеров строк!

Это действительно ново для меня, поэтому я попробовал еще несколько экстремальных вещей:

  • Я удалил все форматирование с листа (щелкнув в левом верхнем углу, а затем на вкладке главная ->очистить -> очистить форматы), а также гиперссылки, комментарии и заметки (из того же выпадающего меню). За которым следует удаление всех неиспользуемых строк.
  • Я сделал то же самое, но после выбора "обычного" стиля для всего листа и удаления всех ячеек.
  • Я разморозил стекла (я здесь в отчаянии, люди).

Лист теперь больше похож на текстовый файл, чем на рабочий лист, но он по-прежнему имеет размер 3 МБ (для 42 x 142 ячеек), а используемый диапазон в соответствии с excel (и VBA) все тот же (или почти, сейчас это $A:$EL).

Есть ли еще что-нибудь, что я могу делать?

Большое спасибо!

PS - Я на Office 365 ProPlus, Сборка 12430.20184 Нажмите, чтобы запустить


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

А) Я убедился, что проблема действительно в этом листе:

  • Я удалил все остальные листы из файла. (Я проверил наличие очень скрытых листов.)
  • Я удалил все именованные диапазоны в рабочей книге.
  • Нет никаких модулей или форм VBA, прикрепленных к рабочая тетрадь.
  • И, что наиболее убедительно: если я добавлю новый рабочий лист с примерно таким же объемом данных и удалю нарушающий, размер файла уменьшится до нескольких 10 Кб.

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

  • любые ссылки в ячейках на других листах. Их можно найти с помощью "поиска и замены" "оригинального рабочего листа!" на "новый рабочий лист!";
  • любое использование в формулах для именованных диапазонов;
  • любое использование в условном форматировании;
  • используйте в коде VBA, в зависимости от того, как на лист ссылаются.

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