我已经在C#中实现了一些复杂且计算量大的函数。为了在Excel中使用它,我已经通过Excel-DNA创建了一个Excel-AddIn。

现在,当我在Excel中调用该函数并开始输入值时,它甚至在我完成所有输入之前就开始计算。而且,当我单击该单元格并更改一些输入时,该函数也会重新计算。通常我不介意。但是由于性能低下,它变成了磨难

有没有办法抑制这种行为? (将计算设置为手动似乎不起作用)基本上,我只希望按F9时才(重新)计算Excel-DNA公式。

如果任何人有其他语言的解决方案,我都会很乐意将其用作启发并将其移植到C#。

最佳答案

根据Govert(XL DNA的作者),您可以执行以下操作:

您可以调用ExceDnaUtil.IsInFunctionWizard()进行检查。

所以你的功能可能会去:

public static object SlowFunction()
{
    if (ExcelDnaUtil.IsInFunctionWizard()) return "!!! In Function
Wizard";

    // do the real work....
}

值得关注Google XLDANA相关问题和解答的Excel DNA Google小组
https://groups.google.com/forum/#!forum/exceldna

关于c# - 如何在输入值时停止Excel-DNA函数的计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21304454/

10-13 09:45
查看更多