我有一个代码可以将所有工作表从第1册复制到第2册。它会多次复制工作表,因此我通过在复制的工作表名称前面添加001_,002_等来更改名称。所有的床单都有下拉菜单。问题是它们被引用(公式 - >名称管理器)到上一个工作簿并且它们不起作用。
有5张要复制的图纸,其中4张正在从图纸类型列表中获取下拉菜单的值。此工作表仅复制一次,因此如果第2册中已存在该代码,则代码不会复制它。
使用Record Macro,在更改其中一个引用时,我得到了这个:
ActiveWorkbook.Worksheets("003_TDT").Names("List_DataType").RefersToR1C1 = _
"=TypeLists!R3C14:R5C14"
我做的是,我去了Formulas - >名称管理员并更改了以下参考之一:
= 'C:\用户\ z183464 \桌面[seq_tdt_template.xlsx]类型串' $ N $ 3:!$ N $ 5'/ P>
为:
=类型串$ N $ 3:!$ N $ 5'/ P>
我的问题是:如何编写一个宏,将Book1 / TypeLists中的所有引用更改为Book2 / TypeLists?
干杯!
答案 0 :(得分:0)
您可以使用此代码。它遍历所有已定义的名称,并将其引用更改为相同的值,并提取不需要的部分(替换为“”)。
这不是宏,而是VBA。您需要将其插入VBA编辑器(Alt + F11)。
Sub replaceNameValues()
Dim oName As Excel.Name
For Each oName In ThisWorkbook.Names
oName.RefersTo = Replace(oName.RefersTo, "C:\Users\z183464\Desktop[seq_tdt_template.xlsx]", "")
Next
End Sub
此致