Дмитрий(The_Prist) Щербаков, здравствуйте. Рад вновь Вас слышать.
Требуется лёгкий ликбез.
Я в своей программе работаю с "выкройками" кубических поверхностей, которые "расписываю" некими функциями.
Выкройки располагаю на 6 листах (А-Б-В-Г-Д-Е). При этом центральные (базовые) грани обзываю именованными диапазонами книги
(А.1-А.2-...-А.18 на листе А; Б.1-Б.2-...-Б.18 на листе Б ; и т.д. до листа Е),
а проекции боковых - приклеиваю к ним с соответствующей стороны и обзываю именованными диапазонами листа
(На листе А:
А.1в, А.1н, А.1л и А.1п - вокруг А.1;
А.2в, А.2н, А.2л и А.2п - вокруг А.2;
...
А.18в, А.18н, А.18л и А.18п - вокруг А.18;
На листе Б:
Б.1в, Б.1н, Б.1л и Б.1п - вокруг Б.1;
Б.2в, Б.2н, Б.2л и Б.2п - вокруг Б.2;
...
Б.18в, Б.18н, Б.18л и Б.18п - вокруг Б.18;
и т.д. до листа Е )
Получается на каждом листе по 18 "крестов", в центрах которых - именованные диапазоны книги, а по краям - именованные диапазоны соответствующего листа.
Обзывание ведётся стандартными процедурами:
Dim WS as WorkSheet
For Each WS in ThisWorkBook.Sheets
For i = 1 to 18
S = WS.Name & "." & i
ThisWorkBook.Names.Add Name := S, RefersToR1C1:=.....
WS.Names.Add Name := S & "л", RefersToR1C1:=.....
WS.Names.Add Name := S & "п", RefersToR1C1:=.....
WS.Names.Add Name := S & "в", RefersToR1C1:=.....
WS.Names.Add Name := S & "н", RefersToR1C1:=.....
................................................................................................
Кубы - переменной размерности, поэтому по ходу работы приходится очищать книгу от одних имён и переназначать их на другие диапазоны.
И вот тут я обнаружил, что в цикле:
Dim диапазон As Name
For Each диапазон in ThisWorkBook.Names
If диапазон = ... Then ActiveWorkBook.диапазон.Delete
...................................................................................................
именованные диапазоны - обрабатываются, но имена их - НЕ УДАЛЯЮТСЯ,
а в цикле:
Dim диапазон As Object
For Each диапазон in ThisWorkBook.Objects
If диапазон = ... Then ...
...................................................................................................
имена - НЕ ЧИТАЮТСЯ.
При этом средствами Excel-я удаление - происходит, но в VBA "проявляются" старые (использовавшиеся ранее) имена, НЕ ОТОБРАЖАЮЩИЕСЯ в Excel-евском списке.
"Кого любить? Чему же верить?" (не моё:)