我目前有一个使用表单的宏,以便在外部程序的帮助下执行一些计算。它所做的只是将一些工作表值写入文件以供另一个程序(外部 .exe)使用作为输入(该程序是封闭源代码)。所述程序然后编写自定义格式输出,我用 VBA 将其废弃,然后将返回值传递回工作表。通过指定源和目标范围的用户表单调用宏。
我想要做的是用 UDF 替换通过用户窗体调用计算的方法。使用GUI方式,更新计算比较麻烦;也不可能知道在目标范围数据中执行了哪些计算。出于性能考虑,选择此路径而不是 UDF。由于计算速度很慢,我不能只重用调用外部程序作为 UDF 的用户表单代码部分并完成它,因为它太慢了。VBA 中似乎没有异步执行(与 Excel 2010 中的 xll 不同)。
一个可能的解决方案是在 UDF 开始执行时立即退出它,除非将全局设置为 true。除非从特定的功能区按钮调用重新计算,否则该全局总是错误的。问题是它不断地执行 UDF,一直将这些范围发送到 #N/A 值,所以我无法引用这些范围。另一种方法是创建假公式,即在指定参数和目标范围的单元格上添加注释。这也有很多问题。
所以。关于如何实现假异步计算 UDF 的任何想法?
谢谢!