Я ценю дополнительные усилия, которые вы предприняли для документирования ваших усилий. Спасибо.
Я часто сбрасываю раздутые книги, используя методы, которые не работают для вас. Я могу выделить только два различия:
Во-первых, я никогда не пытался щелкнуть правой кнопкой мыши -> удалить. Я клавишник, поэтому я всегда использовал Alt+E+D. Это не должно иметь никакого значения, но произошли странные вещи.
Второе отличие состоит в том, что я никогда не застреваю, как ты, он всегда сбрасывается после сохранения. Большая помощь там, верно?
Вот несколько возможных решений:
Горизонтальные / Вертикальные Раздува
Сегодня у меня была проблема, когда мой VBA объединял листы по вертикали, а мой лист необъяснимым образом раздвигался по горизонтали. Сначала я был смущен и обеспокоен, потому что у меня было только вертикальное раздувание, и я не думал проверять по горизонтали, пока моя попытка сброса не удалась дважды. Пожалуйста, порадуйте меня ради полноты и чтобы это не случилось с вами:
- Начните с закрытия любых других сеансов Excel, чтобы текущая рабочая книга была единственной открытой книгой.
- Перейдите к своим данным с правой стороны и выберите первый пустой столбец - весь столбец.
- Ctrl+Shift+→.
- Alt+E, затем D.
- Ctrl+Shift+End.
- Alt+E, затем D.
- Ctrl+Home
- Прокрутите вниз до ваших данных
- Выберите первую пустую строку - всю строку.
- Ctrl+Shift+↓.
- Alt+E, затем D.
- Ctrl+Shift+End.
- Alt+E, затем D.
- Ctrl+Home
- Ctrl+S
Да, две линии Ctrl+Shift+End являются избыточными, но я думаю, что вы можете пережить 15 нажатий клавиш.
Вы не должны закрывать свою книгу после сохранения, но я не буду советовать против этого. Дать ему шанс. Если это не сработает, попробуйте VBA очень быстро.
Путь VBA
Не бойтесь большого плохого VBA, это отличный инструмент, и то, что мы делаем хорошо, занимает всего несколько секунд.
- Убедитесь, что предполагаемая рабочая таблица открыта и активна.
- Alt+F11, чтобы открыть редактор.
- Ctrl+G, чтобы открыть ближайшее окно.
- Тип
?activesheet.usedrange.address
и нажмите Enter.
- Если диапазон выглядит нормальным (не слишком большим), то проблема не в вашем диапазоне.
- Если диапазон является чрезмерно большим. затем введите
activesheet.usedrange
и нажмите Enter. Обратите внимание, что первая команда использовала ?
а это не так Это потому, что вопросительный знак используется, когда мы хотим, чтобы VBA отображал текст, чтобы мы могли видеть значение или статус. Если мы не используем знак вопроса, то мы говорим VBA выполнить действие.
- После того, как вы нажали Enter, наведите курсор на строку, где вы использовали
?
и нажмите Enter.
- если диапазон изменился, то все готово. Если это то же самое, то у вас все еще есть проблема.
Очень скрытые листы
Последняя задача - поиск скрытых листов. Не просто скрытый, но очень скрытый (я не придумываю это).
- Проводник проекта уже должен быть открыт в левой части экрана. Нажмите Ctrl+R, если это не так.
- Окно имеет незначительные различия между версиями Excel, но все они имеют одинаковое поведение разворачивающегося / сворачивающегося дерева.
- Количество отображаемых проектов зависит от количества открытых книг Excel и надстроек. Если вы закрыли все другие рабочие книги и покажете больше, чем несколько проектов, то у вас будет еще кое-что, о чем мы расскажем позже.
- На данный момент найдите свой проект и разверните папки, чтобы отобразить объекты рабочей книги (отдельные рабочие листы и объект
ThisWorkbook
). Вы узнаете их, потому что они будут содержать имена ваших листов в скобках.
- Найдя, найдите имя, которого нет в вашей книге, на вкладке листа.
- если вы найдете его, выберите его в окне проводника и перейдите в окно свойств (под проводником или F4).
- Прокрутите вниз, чтобы найти видимое, это должно быть одно из двух значений:
xlhidden
или xlveryhidden
.
- Щелкните внутри значения, чтобы открыть раскрывающееся меню, и выберите
xlvisible
.
- Если это не так, значит, вы выбрали неправильный лист и, возможно, неправильный проект, - дважды проверьте свой выбор.
- Если вы нашли и распрятали листы, вернитесь к каждому из них и сбросьте эти диапазоны, чтобы увидеть, не сократилась ли ваша книга (не забудьте снова спрятать листы.
К сведению: очень скрытый лист отсутствует в контекстном меню скрытия / отображения в Excel, поэтому это один из лучших способов защиты конфигураций и вспомогательных столбцов.
- Мы закончили с VBA, поэтому закройте редактор и вернитесь в Excel. Нажмите Ctrl+F3, чтобы открыть менеджер имен.
- Ищите неожиданные именованные диапазоны. Обычно я не рекомендую удалять именованные диапазоны, если вы не очень хорошо знакомы с рабочей книгой, потому что многие продуктивные решения Excel/VBA не будут работать должным образом, если вы удалите нужный диапазон; однако, если вы обнаружите диапазон с ошибками, указывающий на несуществующие рабочие книги, ссылки на неиспользуемые диапазоны или с каким-то другим явно неправильным значением - тогда они готовы к удалению.
Некоторые другие полезные советы
Это значительно дольше, чем я ожидал, поэтому я постараюсь обернуть это ...
Проверьте свое условное форматирование - точно так же, как и именованные диапазоны, вы ищете явно неправильные или воспроизведенные условия.
Проверьте ваши запросы и модели данных.
Убедитесь, что у вас нет картинок / диаграмм / listobjects
в труднодоступном месте (проверка, которую мы сделали с менеджером имен, должна выявить большинство, но не все, из них).
Убедитесь, что у вас нет нестандартных настроек конфигурации (я заметил, что галерея стилей коллеги на главной вкладке была заполнена с тем же 20% -ным акцентом, а расширение ее выявило сотни). Используя редактор VBA, я набрал ?activeworkbook.styles.count
и вернул более 19 000; для сравнения у меня было 47).
Следите за чрезмерным форматированием - несколько сотен тысяч строк чисел, отформатированных как валюта, - это не то же самое, что несколько сотен тысяч строк, отформатированных с границами ячеек, имеющими форму лабиринта, заполненного разными цветами и множеством различных пользовательских форматов чисел, символов и шрифтов.
Проверьте сами данные, несколько сотен строк, охватывающих 20 столбцов с каждой ячейкой, заполненной до предела, были бы смущающей - но возможной - причиной раздувания
И, наконец, ядерный вариант. Сохраняйте каждый лист отдельно в виде текстового файла CSV и импортируйте его в новую рабочую книгу ... эта вещь гарантированно сработает, если у вас нет поврежденных данных - но восстановление ваших форматов, подключений и тому подобного может быть проблемой.