Чтобы получить список всех именованных диапазонов в Excel VBA, вы можете использовать различные методы. Вот несколько примеров:
Метод 1. Перебор всех именованных диапазонов в ActiveWorkbook:
Sub GetNamedRanges()
Dim rng As Name
For Each rng In ActiveWorkbook.Names
Debug.Print rng.Name
Next rng
End Sub
Этот код перебирает все именованные диапазоны в активной книге и печатает их имена в окне интерпретации.
Метод 2. Использование коллекции Names определенного листа:
Sub GetNamedRangesWorksheet()
Dim rng As Name
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") ' Replace "Sheet1" with the desired sheet name
For Each rng In ws.Names
Debug.Print rng.Name
Next rng
End Sub
Этот код перебирает все именованные диапазоны в «Листе1» книги и печатает их имена.
Метод 3. Получение именованных диапазонов из определенного диапазона:
Sub GetNamedRangesInRange()
Dim rng As Range
Dim nm As Name
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("A1:B10") ' Replace "Sheet1" and "A1:B10" with the desired sheet and range
For Each nm In rng.Parent.Names
If Not Intersect(rng, nm.RefersToRange) Is Nothing Then
Debug.Print nm.Name
End If
Next nm
End Sub
Этот код извлекает все именованные диапазоны, которые пересекаются с указанным диапазоном («A1:B10» в «Лист1»), и печатает их имена.