【发布时间】:2020-10-01 12:29:03
【问题描述】:
请先阅读以下帖子; Copy all named ranges to another workbook。我也在尝试,这个页面上的答案和其他网站上的信息让我无处可去。
我已经稍微修改了代码。使用此代码,我收到以下错误;错误 1004“应用程序定义或对象定义错误”。非常感谢您的帮助。 错误显示在以下行:'ThisWorkbook.Names.Add Name:=x.Name, RefersTo:=x.Value'
Sub CopyNames()
'Gedefineerde namen kopiëren naar andere werkmap.
Dim x As Name
Dim wbDatabase As Workbook
Set wbDatabase = Workbooks("Database.xlsx")
For Each x In wbDatabase.Names
ThisWorkbook.Names.Add Name:=x.Name, RefersTo:=x.Value
Next x
End Sub
【问题讨论】:
-
它有什么作用吗?如果您在错误时单步执行
x.Value是什么? -
x.Value ="=SheetName!#REF!"因此,它确实在“数据库”工作簿中找到了一张工作表,但没有范围名称。我在工作簿“数据库”中定义的所有名称都是为整个工作簿设置的,而不仅仅是一张表。
-
原文件中的引用是什么?
-
我的数据库文件中有很多范围名称。他们都指的是这样的东西;名称 = Company_Name,参考 = =TableCompany_Name[表头名称]