从复制的命名范围中删除外部引用 sheet
Removing external reference from named range in copied sheet
我有一堆工作簿是通过导出两个 sheet 创建的 - 数据 sheet 本身和一个名为 Lookups
的 sheet 包含用于数据验证的命名范围下拉菜单。
我遇到的最大问题是复制过程导致那些命名范围不引用新 sheet 而是引用原始工作簿 - 其中 TimeUnits
范围 应该定义为=Lookups!$D:$D
,实际上变成了='\sestofp001p\users\SEANP\WWL\Other Projects160531 - Ops - Port data project\Data Collection\[Port Data.xlsm]Lookups'!$D:$D
.
这不是什么大问题,除了 312 个不同的工作簿上有 26 个范围,所以我正在寻找一种方便的方法来删除多余的位以将其变成该书的本地参考。有什么建议吗?
您是否尝试过定义一个 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:$D"))
End Sub
我有一堆工作簿是通过导出两个 sheet 创建的 - 数据 sheet 本身和一个名为 Lookups
的 sheet 包含用于数据验证的命名范围下拉菜单。
我遇到的最大问题是复制过程导致那些命名范围不引用新 sheet 而是引用原始工作簿 - 其中 TimeUnits
范围 应该定义为=Lookups!$D:$D
,实际上变成了='\sestofp001p\users\SEANP\WWL\Other Projects160531 - Ops - Port data project\Data Collection\[Port Data.xlsm]Lookups'!$D:$D
.
这不是什么大问题,除了 312 个不同的工作簿上有 26 个范围,所以我正在寻找一种方便的方法来删除多余的位以将其变成该书的本地参考。有什么建议吗?
您是否尝试过定义一个 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:$D"))
End Sub