Программно определить, находится ли именованный диапазон в рабочей книге

Я пытаюсь, как мне показалось, быть довольно простым оператором vba, чтобы проверить, ограничен ли именованный диапазон рабочей книгой или конкретным листом.

В качестве теста я создал новый документ Excel и добавил его в 6 именованных диапазонов. Вот как они выложены вИмя менеджера:

 Name         |   Refers To          |   Scope
 -------------+----------------------+-----------
 rng_Local01  |   =Sheet1!$A$2:$A$16 |   Sheet1
 rng_Local02  |   =Sheet1!$C$2:$C$16 |   Sheet1
 rng_Local03  |   =Sheet1!$E$2:$E$16 |   Sheet1
 rng_Global01 |   =Sheet1!$B$2:$B$16 |   Workbook
 rng_Global02 |   =Sheet1!$D$2:$D$16 |   Workbook
 rng_Global03 |   =Sheet1!$F$2:$F$16 |   Workbook

Я ожидаю, что работает:

For i = 1 To ThisWorkbook.Names.Count
    If ThisWorkbook.Names(i).WorkbookParameter Then Debug.Print ThisWorkbook.Names(i).Name
Next i

приведет к тремWorkbook область именованных диапазонов для регистрации, однако, ничего не происходит. Там нет ошибки..Names(i).WorkbookParameter оцениваетFalse наВСЕ из названных диапазонов, и я не уверен, почему.

Глядя черезName объект в помощи VBA я наткнулсяValidWorkbookParameter который выглядит какReadOnly двоюродный братWorkbookParameterОднако использование этого метода не имеет никакого значения.

Я также попытался явно установитьThisWorkbook.Names(i).WorkbookParameter = TrueОднако это приводит к ошибке:

"Неправильный вызов процедуры или аргумент"

Несмотря на то, чтоWorkbookParameter указан какЧитай пиши

Может кто-нибудь пролить свет на то, почему это не работает, как я ожидаю? Я неправильно понял, какName.WorkbookParameter должен работать? Кто-нибудь может заставить это работать успешно?

Ответы на вопрос(2)

Ваш ответ на вопрос