Страницы: 1
RSS
Получить свойства именованных диапазонов книги
 
Доброго дня!

Такая ситуация, мне необходимо перебрать все имеющиеся именованные диапазоны в книге и получить их свойства. Я попробовал For Each, но не смог получить имя и такой цикл перебирает диапазоны с областью действия sheets(1), как указать все листы?
Код
For Each NM In ThisWorkbook.Sheets(1).Names
     rangeAddress = range(NM).Address 'возвращает диапазон - "$A$10"
     nameAddress = range(NM).Name     'возвращает диапазон - "=Заявка!$A$10"
Next
 
Перебрать диапазоны с областью действия "Книга" у меня получилось, но вот получить имя нет.
 
Debug.Print NM.Name
 
Здравствуйте. Если я правильно понял, надо так:
Код
 nameAddress = NM.Name: Debug.Print nameAddress

Кому решение нужно - тот пример и рисует.
 
Код
nameAddress = NM.Name
 
Пытливый, vikttur,Kostya_Ye, да, точно, все сработало, спасибо!
Изменено: ALFA - 20.02.2019 11:14:20
 
Возник еще вопрос, при таком цикле перебираются не только пользовательские именованные диапазоны? что еще содержится в книге, в контейнере .Names помимо именованных диапазонов листов?
Код
With ThisWorkbook
    For Each NM In .Names
        
        rangeAddress = range(NM).Address
        nameAddress = NM.Name
        
    Next
End With
Изменено: ALFA - 20.02.2019 11:27:22
 
К слову нашел циклом имя "_xlfn.SHEETS", но такого в диспетчере имен нет и метода range у этого объекта нет.
 
Имена, содежащие вычисления, т.е. именованные формулы
 
ALFA,
Гугл говорит, что эти имена Эксель создает для совместимости функций из новых версий со старыми версиями. При переборе в макросе такие имена просто игнорируйте.
 
vikttur, Спасибо за инфу.
Страницы: 1
Наверх