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