下拉选择列表的VBA参考

时间:2013-08-12 07:14:55

标签: vba excel-vba reference excel

我有一个代码可以将所有工作表从第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?

干杯!

1 个答案:

答案 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

此致