【发布时间】:2018-06-15 01:53:00
【问题描述】:
我在将带有 VBA 的 Excel 2010 电子表格部署到客户端时遇到问题。他们报告以下错误:“运行时错误'1004':对象'_Application'的方法'Names'失败”。
截图
失败的相关代码部分如下:
Dim settings as Range
Set settings = Application.Names("basictags").RefersToRange
“basictags”这个名字肯定存在于电子表格中(而且它在我端工作得很好),所以我认为它与在客户端启用保护模式有关。但是,他们已经确认,当 Excel 显示保护模式警告时,他们点击了“启用”按钮,所以我不确定还有什么可能导致它。
【问题讨论】:
-
它会报告“_Application”真的很奇怪。下划线表示您没有限定引用,就像您使用没有应用程序限定符的
Names("basictags")并且它必须使用名称的默认父级。但默认父级是工作簿,而不是应用程序。名称问题通常与范围相关,但我可以重现这个问题。 -
似乎这个 Excel 实例不喜欢全局命名空间......按照 dotNet 的建议使用 ThisWorkbook 进行限定修复了原始错误,但现在使用 Sheets() 调用,客户端报告“对象 '_Global' 的方法 'Sheets' 失败”