【发布时间】:2016-08-22 09:26:58
【问题描述】:
我有一堆通过导出两个工作表创建的工作簿 - 数据表本身和一个名为 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 个范围,所以我正在寻找一种方便的方法来删除多余的位以将其变成该书的本地参考。有什么建议吗?
【问题讨论】:
-
搜索和替换允许您替换公式中的数据。
-
你可以遍历
Workbook.Names集合 -
@iDevlop,据我所知,它只在实际工作表中执行公式 - 它似乎不会更改命名范围引用。我有什么特别需要寻找的吗?
-
我正在考虑将“someExternalRef!A2b5”替换为 a2b5
-
@AndrewPerry 在下面的回答中尝试该方法
标签: excel named-ranges vba