刷新工作簿时,自定义Excel函数会引发错误

时间:2015-08-06 10:26:51

标签: excel excel-vba excel-formula vba

我有一个自定义Excel函数

Public Function getDate(interval, no)

    getDate = Format(DateAdd(interval, no, Date), "dd.mm.yyyy")

End Function

当我在单元格中输入此函数时,它按预期工作。 但是,当我打开一个已经使用了该函数的文件时,会产生#Value!错误。

单元格的示例输入:=">" &getDate("ww";-1)通常结果为: >30.07.2015

我也使用Bloomberg Excel-Addin并在单元格中使用Bloomberg功能。但这些工作没有任何问题。

有没有人知道如何修复它? 最好的问候

1 个答案:

答案 0 :(得分:2)

这是部分答案或完整答案。您的函数包含Date - 这表示您希望函数为Volatile,但默认情况下UDF是非易失性的。如果你把

Application.Volatile

作为getDate中的第一行,然后它会在日期更改时自动更新。

也许问题是,当您以后打开文件时,Excel会以某种方式检测到对日期的依赖,但无法重新计算它。我无法重现您的错误,而且我没有这个Bloomberg Addin,因此我不知道这是否是 错误,但它看起来像 错误。

另一个想法 - 使用加载项,您不需要保存为启用宏的工作簿,而是使用您需要的UDF。我不认为这是问题,但您应该仔细检查它是否已保存为启用宏的工作簿,并使用启用它的安全设置打开。

如果这些建议无法解决,请查看是否在未安装该插件的情况下仍然收到错误消息。