将XLL插件function转换为本地VB模块:问题刷新公式

我有一个.xll插件,它在一些地方注册了我们在excel表格中使用的一些函数。 性能非常差,我们没有原始代码,所以我们通过在VB模块中编写函数来复制function。 function按预期工作,性能更好。

问题是表单不会自动识别新function。 例如,假设一个单元格的公式是“= CustomFunction()” ,它是在xll中定义的,现在已经在VB中定义了。 这将继续显示为“#NAME”,除非我手动编辑单元格,然后按Enter键。 然后正确地拿起VB公式并计算。

重新计算公式的标准技巧:Ctrl / Alt / Shift / F9没有奏效。

有没有人经历过这个? 任何想法如何解决这个问题?

我会做一个全局search,并从= CustomFunction = TempCustomeFunctionreplace。 然后全局重命名为= CustomFunction。 这将强制Excel重新评估function。 (我有一个模糊的想法,你可能需要保存,关机,并在他第一次更换后重新启动,但首先要确定)。

我很确定我已经列出了一个类似的问题,并为我解决这个问题。 我想如果你有很多的工作簿要解决,你可能需要通过自动化来做到这一点。