Переопределение существующего диапазона в Excel с использованием VBA

У меня есть таблица, которую я запускаю ежедневно, в которой содержатся цифры из прошлого и добавляются цифры из предыдущего дня. В одном разделе я разбил это на неделю, но меня волнует только текущая неделя.

В настоящее время я должен вручную переопределить 28 диапазонов в формулах, и я бы предпочел автоматизировать это, используя VBA, если это необходимо, но мои знания ограничены.

Пример того, что я хочу обновить:

=IFERROR(AVERAGE(E112:E116),"") *to become after first week *=IFERROR(AVERAGE(E117:E121),"") *and to become after the second week*=IFERROR(AVERAGE(E122:E126),"")

В этом примере E112 - понедельник первой недели, E113 - вторник первой недели, E117 - понедельник второй недели и т. Д.

Как я уже говорил, я забочусь только о текущей неделе. Если мы используем приведенный выше пример и говорим, что первая неделя - это неделя, а сегодня среда, я хочу, чтобы диапазон был определен как E112 - E116, но я ожидаю, что только E112 и E113 будут содержать данные (из-за однодневной задержки).

Я думал, что самый простой способ - написать скрипт, в котором при каждом запуске макроса будет изменяться определение диапазона путем смещения диапазона (но не значений ячеек) на пять ячеек. Это будет сделано один раз в неделю.

Я также думал, что смогу создать именованный диапазон (скажем, "TotalFixed"), который будет определяться как E112:E116 и иметь формулу: =IFERROR(AVERAGE("TotalFixed"),"") и просто иметь определение "TotalFixed" "быть обновленным до E117:E121 и затем до E122:E126 и так далее.

Любая помощь будет принята с благодарностью.

0 ответов

Другие вопросы по тегам