(контекст: я много знаю о написании сложных формул в Excel, но очень хорошо разбираюсь в VBA. Я удивлен, что не смог найти решение проблемы, которую пытаюсь решить самостоятельно, что заставляет насинтересно, есть ли что-то в Excel, что делает это невозможным).Я хотел бы представить, что многие другие сочли бы это столь же полезным, как и я, потому что я уверен, что многие люди получают раздутые шаблоны Excel.
У меня есть шаблон Excel с множеством ячеек на различных рабочих листах спредварительно заполненные формулы, которые обновляются на основе выгрузки изменяющегося набора данных в одну рабочую таблицу.Я использую шаблон для различных «проектов», которые не все требуют использования всех ячеек, предварительно заполненных формулами.Таким образом, после импорта новых данных некоторые неиспользуемые строки и столбцы скрываются (вручную или с помощью макроса VBA), поскольку они не нужны.
Я хотел бы найти способ очистки содержимого (т. Е.формулы) во всех скрытых ячейках, чтобы уменьшить общий размер файла.Мои файлы быстро получают более 100 МБ, но, возможно, 80% ячеек, содержащих формулы, не используются ни для какого конкретного проекта и могут быть очищены.
Я не эксперт по VBA, но я искалэто через Google, думая, что это будет легкий фрагмент VBA, но буквально через несколько часов углубляясь в ранжирование результатов поиска Google, я не нашел ни одного хорошего результата, который бы направил меня в сторону решения.
Существует много информации о том, как использовать VBA для удаления скрытых строк или столбцов, но я не могу сделать это с моей книгой (мне нужны строки и столбцы, чтобы остатьсядля других формул и форматов для работы).Я просто хочу удалить неиспользуемые формулы в скрытых ячейках.
Я понимаю, что могу использовать следующее для очистки содержимого и / или очистки форматов
Sheets("Test").Range("A1:C3").ClearContents
Sheets("Test").Range("A1:C3").ClearFormats
, и я использую эту строку, чтобы скрытьЯчейки:
Range.Hidden = True
Итак, как я могу получить диапазон для функции ClearContents
, который будет определен как скрытые ячейки (или чтобы он действовал только на скрытые ячейки)?И как это можно сделать эффективно ... Я узнал, что выполнение цикла может занять много времени, так как оно продвигается через строки или столбцы для выполнения задачи.
Я хотел бы иметьрешение, которое позволяет этот процесс:
- Импорт новых данных
- Скрыть ненужные строки и столбцы
- Нажмите кнопку макроса, чтобы очистить все формулы от всех ячеек в пределах определенного
Range(A3:TY53)
на всех листах
Буду признателен за любую помощь или указание на существующее решение, которое я не смог найти самостоятельно.