Я хочу удалить все глобальные именованные диапазоны в книге. У меня есть этот код:
Dim xName As Name
For Each xName In Application.ActiveWorkbook.Names
If InStr(xName.Name, "!") = 0 Then xName.Delete
Next
Даже когда я изменяю код, чтобы удалить ВСЕ именованные диапазоны, я все равно получаю ту же ошибку.
Dim xName As Name
For Each xName In Application.ActiveWorkbook.Names
xName.Delete
Next
Когда я запускаю его, удаляется только первый именованный диапазон, а затем выдается ошибка 400. Он не переходит к следующему.
Есть ли какое-то дополнение или настройка, которую мне не хватает? Этот код кажется довольно простым, но я не могу заставить его работать.
If InStr(xName.Name, "!") = 0 Then xName.Delete
и после этого введите?xName.Name, xname.RefersTo
в Immediate Window и нажмите return . - person DisplayName   schedule 31.03.2018?ActiveWorkbook.Name
и нажмите клавишу возврата - person DisplayName   schedule 31.03.2018ActiveWorkbook.Names.Count
и нажмите клавишу возврата - person DisplayName   schedule 31.03.2018For Each xName In Application.ActiveWorkbook.Names
строке нарушения? - person DisplayName   schedule 31.03.2018?xName.Name, xname.RefersTo
возвращает ошибку: Ошибка времени выполнения '91': переменная объекта или переменная блока не установлена - person narfie   schedule 31.03.2018