XLL和vba函数名称冲突导致永久#NAME?错误

时间:2011-03-31 17:02:48

标签: excel vba excel-2003 xll

在excel 2003 sp2中

  • XLL定义了xll_function 如果我打电话,它可以正常工作。

  • 定义了同名的VBA函数:它优先于XLL的xll_function。

  • 删除了VBA功能,一个#NAME?出现并永远留下来。 在另一个excel版本或安全模式下保存工作簿没有帮助。

Excel仍记得查看VBA,即使VBA功能消失了。 有什么建议可以解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

尝试定义与函数相同的定义名称,然后将其删除

答案 1 :(得分:1)

Excel在链接VBA,XLA [M]或XLL中包含的UDF时有一种非常奇怪的行为。

通常,在编辑工作簿时,VBA UDF优先于XLA [M] / XLL中的一个,并且这是链接并保存在工作簿中的那个。

但是,当您打开工作簿时,Excel将首先查看XLA [M] / XLL中的UDF,然后查看同一工作簿的VBA部分中的UDF。可能这是因为Excel还不知道VBA UDF,但是XLA [M] / XLL中的那个已经是,并且工作簿将永久链接到后者。

除非您将工作簿移动到XLA [M] / XLL不可用的PC,否则您可能无法理解调用哪一个。此时,最可能的结果是您单元格中的“#NAME”或“#VALUE”。

我建议不要在不同的提供商中使用UDF的SAME名称来避免歧义。

答案 2 :(得分:0)

最后,我从一个旧的电子表格开始,将我的模块和表格转移到它...是我能找到的唯一方法

相关问题