Одной из наиболее полезных функций в Excel является возможность дать диапазону имя, таким образом, чтобы можно было легко идентифицировать и обратиться к нему с помощью VBA.
Вот шаги, которые нужно выполнить, чтобы создать диапазон вручную:
- Выберите диапазон, который вы хотите назвать.
- Перейдите на вкладку Формулы в ленте и выберите команду Определить имя.
- Дайте выбранному диапазону удобное для пользователя имя в диалоговом окне «Новое имя».
После нажатия кнопки ОК, ваш диапазон именуется. Чтобы убедиться в этом, вы можете перейти на вкладку Формулы и выбрать команду Диспетчер имен. Это активизирует диалоговое окно Диспетчер имен , где вы можете увидеть все примененные именованные диапазоны.



Создание именованного диапазона с помощью VBA является менее трудоемким.
Код макроса
Sub PrisvaivaemImyaDiapazonu()
'Присваиваем имя диапазону
Range("D6:D17").Name = "MyData"
End Sub
Как этот код работает
Следует признать, что трудно найти такую ситуацию, когда вам нужно было бы автоматизировать создание именованных диапазонов. Реальная эффективность достигается в манипулировании их с помощью VBA.
Как макрос работает
Вы просто передаете имя диапазона с помощью объекта Range. Этот макрос позволяет выбрать диапазон:
Код макроса
Sub ViborDiapazona()
Range("MyData").Select
End Sub
Как этот код работает
Как и в случае нормальных диапазонов, вы можете обратиться к диапазону с помощью оператора With … End With. Этот оператор говорит Excel, что любое действие, которое вы выполняете относится к объекту, который вы указали. Это не только избавит вас от необходимости повторять синтаксис, но и позволит легко добавлять действия, просто добавляя их между With и End With.
Код макроса
Sub ViborDiapazonaFormatirovanieWith()
With Range("MyData")
.NumberFormat = "#,##0"
.Font.Bold = True
.Interior.ColorIndex = 36
End With
End Sub
Как использовать
Для реализации такого рода макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код
Бывают ситуации, когда диапазон отчета, который необходимо автоматизировать является переменным значением.
В таких случаях я пишу:
Set Range_Preorder = Application.InputBox(«Введите диапазон данных предзаказа(без шапки и итога)», Type:=8)
Возможно есть способ чтобы определить диапазон по всем доступным ячейками ниже шапки столбца с названием «Предзаказ», но я о нем не знаю.