Мы ни раз говорили о преимуществах таблиц перед диапазонами и о возможностях именованных диапазонов.
Но мы ни говорили о том, что динамический именованный диапазон можно задать не только для таблиц.
Именно такое нестандартное решение мы рассмотрим сегодня в обзоре.
📢 Скачать исходник с примером решения вы можете в конце статьи 🔽
▶️ Обозначим преимущества
Именованные диапазоны представляют собой удобный способ организации и управления данными в таблицах.
Вот некоторые из их ключевых преимуществ:
✅ Резюме: Использование именованных диапазонов улучшает организацию данных, повышает производительность и снижает вероятность ошибок при работе с таблицами.
▶️ Стандартный подход
Предположим, есть источник данных:
Для данного случая (с учетом, что данные представлены не таблицей) именованный диапазон можно задать следующим образом:
Но, так как диапазон в данном случае ограничен при добавлении новых данных возникнет проблема 🤔
⚠️ Новые данные не будут добавлены, до тех пор, пока вы не измените область диапазона вручную.
Безусловно, решить данную проблему может преобразование диапазона в таблицу.
В этом случае новые данные автоматически попадут в указанный именованный диапазон:
Но что, если по какой-то причине вы решили вести учет не в таблицах, а именно в диапазонах!? Как в таком случае создать динамический именованный диапазон?
➡️ Да, это возможно!
И может быть целесообразно, когда вы решили ограничить ручной ввод, а данные в источник заносятся посредством макросов или UserForms:
▶️ Обзор решения
Для решения поставленной задачи рассмотрим следующий макрос:
🔔 Важно! Не забудьте заменить "Лист3" на имя вашего листа в коде.
После выполнения этого макроса, у вас будет создан динамический именованный диапазон с именем "Мой_Диапазон", который автоматически обновляется при изменении данных в столбце A.
Применять данное решение можно как для создания выпадающих списков, так и использовать в других макросах.
Если все же планируется непосредственное взаимодействие пользователя на листе, то рекомендуем использовать событие Worksheet.Change:
Такой подход позволит обновлять именованный диапазон автоматически при изменении данных в столбце A на указанном листе:
Как только данные в столбце A изменяются, диапазон будет пересчитан, и будет включить только актуальные данные.
📍 Рекомендуемые статьи 🔽