从复制的工作表中删除命名范围的外部参照

我有一大堆的工作簿,通过​​导出两个工作表 – 数据表本身和一个名为Lookups的工作表,其中包含数据validation下拉列表的命名范围。

我遇到的最大问题是复制过程导致了那些指定的范围不是指向新工作表,而是指向原始工作簿 – 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个范围之外,这不是一个大问题,所以我正在寻找一种方便的方法去除多余的位,将其变成本书的参考。 有什么build议么?

你有没有尝试定义一个Namevariables,并通过VBA创build? 就像我下面的例子:

 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