更改命名范围参考

我正在处理一个具有生成子文件的macros操作的Excel文件。 我被指示做的是为某些领域创buildselect列表。 我在父文件中创build了一个新的参考表来容纳下拉值。 然后我为这些列创build了命名范围。

当我执行子文件的导出操作时出现问题。 “引用”string更改为包含父文件的path。 我不希望这样,因为如果父母closures,子文件中的select列表function会中断。

有没有办法阻止“引用”string通过导出过程中的变化? 收集所有select列表信息的参考表格从父母到孩子被复制。

我已经尝试过直接引用单元格范围,并使用相同的结果:

如果主文件指向:='Xref'!A2:A11然后子文件指的是:='[C:…. xlsm] Xref'!A2:A11

了解新的工作簿是一个副本,并包含所有的名字,如原来的,你可以运行一个For Each循环(在源工作簿中用作macros):

 Dim xName As Variant, wb As Workbook Set wb = Workbooks("the child workbook") For Each xName In ThisWorkbook.Names wb.Names(xName.Name).RefersToR1C1 = xName.RefersToR1C1 Next 

如果不是所有的名字都存在,只要使用On Error Resume Next在循环前面:)

如果你还有什么问题,就问。

编辑如果不是所有名称都存在于新的wb中,那么这将会更好/更快(在源代码工作簿中用作macros):

 Dim xName As Variant, wb As Workbook Set wb = Workbooks("the child workbook") For Each xName In wb.Names xName.RefersToR1C1 = ThisWorkbook.Names(xName.Name).RefersToR1C1 Next