3

在 excel 2003 sp2 中

  • XLL 定义 xll_function 如果我调用它,它工作正常。

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

  • VBA 函数被删除,#NAME? 出现并永远停留。将工作簿另存为另一个 Excel 版本或安全模式无济于事。

Excel 仍然记得查看 VBA,即使 VBA 功能已经消失。关于如何解决这个问题的任何建议?

4

3 回答 3

2

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

于 2011-03-31T21:15:36.580 回答
1

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

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

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

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

我的建议是避免歧义,不要在不同的提供者中为 UDF 使用相同的名称。

于 2012-05-10T13:52:57.757 回答
0

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

于 2011-04-01T08:14:32.290 回答