excel-vba
Именованные диапазоны
Поиск…
Вступление
Определить именованный диапазон
Использование именованных диапазонов позволяет описать значение содержимого ячейки (я) и использовать это определенное имя вместо фактического адреса ячейки.
Например, формулу =A5*B5
можно заменить на =Width*Height
чтобы упростить чтение и понимание формулы.
Чтобы определить новый именованный диапазон, выберите ячейку или ячейки для имени, а затем введите новое имя в поле «Имя» рядом с панелью формул.
Примечание. Именованные диапазоны по умолчанию относятся к глобальной области, что означает, что к ним можно получить доступ из любой точки книги. Старые версии Excel позволяют дублировать имена, поэтому необходимо избегать дублирования имен глобальной области, иначе результаты будут непредсказуемыми. Используйте вкладку «Диспетчер имен» на вкладке «Формулы», чтобы изменить область действия.
Использование именных диапазонов в VBA
Создайте новый именованный диапазон под названием «MyRange», назначенный ячейке A1
ThisWorkbook.Names.Add Name:="MyRange", _
RefersTo:=Worksheets("Sheet1").Range("A1")
Удалить определенный именованный диапазон по имени
ThisWorkbook.Names("MyRange").Delete
Доступ к именованному диапазону по имени
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)
Доступ к названию диапазона с ярлыком
Как и любой другой диапазон , именованные диапазоны могут быть доступны напрямую с помощью ярлыка, который не требует создания объекта Range
. Три строки из выдержки из вышеприведенного кода могут быть заменены одной строкой:
Call MsgBox("Width = " & [MyRange])
Примечание. Свойством по умолчанию для диапазона является его значение, поэтому
[MyRange]
совпадает с[MyRange].Value
Вы также можете вызвать методы в диапазоне. Следующий выбирает MyRange
:
[MyRange].Select
Примечание. Одно предостережение состоит в том, что нотация ярлыка не работает со словами, которые используются в другом месте библиотеки VBA. Например, диапазон с именем
Width
не будет доступен как[Width]
но будет работать, как ожидалось, при доступе черезThisWorkbook.Worksheets("Sheet1").Range("Width")
Управление именованным диапазоном (диапазонами) с помощью диспетчера имен
Вкладка «Формулы»> «Определенная группа имен»> «Диспетчер имен»
Именованный менеджер позволяет:
- Создайте или измените имя
- Создать или изменить ссылку на ячейку
- Создать или изменить область действия
- Удалить существующий именованный диапазон
Named Manager предоставляет полезный быстрый поиск неработающих ссылок.
Именованные массивы диапазонов
Примерный лист
Код
Sub Example()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
Dim units As Range
Set units = ThisWorkbook.Names("Units").RefersToRange
Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub
Результат