Я пытаюсь удалить все Named Ranges в своей книге Excel, хранить их в коллекции и после удаления повторно привязать их к моей книге.Повторная привязка именных диапазонов в VBA
Мой код выглядит следующим образом
Sub ResetNamedRanges()
Dim rName As Excel.Name
Dim cName As Excel.Name
Dim rangedNames As Excel.names
Dim collNames As New Collection
Set rangedNames = ThisWorkbook.names
For Each rName In rangedNames
collNames.Add rName
rName.Delete
Next
For Each cName In collNames
names.Add cName.Name, cName.RefersTo, cName.Visible, cName.MacroType, cName.ShortcutKey, cName.Category, cName.NameLocal, cName.RefersToLocal, cName.CategoryLocal, cName.RefersToR1C1, cName.RefersToR1C1Local
Next
End Sub
Но это не работает. Уверенный, что я что-то пропустил.
Ваш цикл переменной для перехода через '' rangedNames' является rName', но вместо того, чтобы вы ссылки 'item' ?? Зачем?? Ваша переменная цикла для перехода через 'collNames' является' cName', но вместо этого вы ссылаетесь на 'names' ?? Зачем?? Исправьте свои ссылки на переменную цикла – tigeravatar
@tigeravatar Sry Typo ... – Smartis
Вы сохраняете коллекцию (?) 'NameArray' и восстанавливаете из коллекции' collNames', которая должна работать. –