2016-08-22 3 views
0

У меня есть куча книг, созданных путем экспорта двух листов - самой лист данных и лист с именем Lookups, содержащий именованные диапазоны для выпадающих данных.Удаление внешней ссылки из именованного диапазона в скопированном листе

Большая проблема у меня в том, что процесс копирования привел к тем именованных диапазонов, относящихся не к новому листу, но с оригинальной книги - где TimeUnits диапазон должен быть определен как =Lookups!$D$2:$D$4, он фактически превратился в ='\\sestofp001p\users\SEANP\WWL\Other Projects\20160531 - Ops - Port data project\Data Collection\[Port Data.xlsm]Lookups'!$D$2:$D$4.

Это не будет большой проблемой, за исключением того, что в 312 разных книгах имеется 26 диапазонов, поэтому я ищу удобный способ удаления избыточного бита, чтобы превратить его в ссылку, локальную для этой книги. Какие-либо предложения?

+0

Поиск и замена позволяет вам заменять данные в формулах. –

+0

вы можете переплетать коллекцию 'Workbook.Names' – Slai

+0

@iDevlop, которая только показывает формулы в реальных листах, насколько я могу судить, - это, похоже, не изменяет именованные ссылки диапазона. Есть ли что-нибудь, в частности, мне нужно искать? –

ответ

1

Пробовал ли это с определением переменной Name и создать ее через VBA? Как и в моем примере ниже:

Sub Add_NamedRange() 

Dim TimeUnits_NamedRange   As Name 

' create the named range , modify This Workbook to your new created workbook 
Set TimeUnits_NamedRange = ThisWorkbook.Names.Add("TimeUnits", ThisWorkbook.Sheets("Lookups").Range("$D$2:$D$4")) 

End Sub 
+0

А, отлично - это именно то, на что я надеялся! Будет ли он перезаписывать/редактировать существующие диапазоны или мне нужно сначала удалить их? –

+1

это будет перезаписать существующие именованные диапазоны с тем же именем –

+0

Великолепно, спасибо! –