我正在使用一个自定义Excel插件,它将多个功能导出到Excel,这些功能可以完成很多“幕后”工作。我想强制Excel以特定顺序评估对这些函数的调用。也就是说,如果
A1 = AddinFunction(“Foo”)
和
B3 = AnotherAddinFunction(“Bar”)
然后我想强制Excel在B3之前评估A1。如何使用mininum hacking,最好不使用VBA?
答案 0 :(得分:1)
这归结为如何在Excel中完成表达式树评估。它需要一个理由来按顺序评估您的功能。您可以使B3依赖于A1的结果,例如B3 = IF(ISBLANK(A1),AnotherAddInFunction(“Bar”),AnotherAddInFunction(“Bar”))
长时间没有完成XLL,所以这是来自内存。
答案 1 :(得分:1)
如果您可以将代码更改为XLL插件,那么您可以为要排序的调用添加虚拟“触发器”参数(添加可选的XLOPER arg)。然后通过将对单元格的引用添加为虚拟触发器参数来使调用依赖于您希望它遵循的单元格...
所以B3最终成为AnotherAddinFunction(“Bar”,A1);
函数本身忽略触发器参数,只要A1改变并且总是在A1之后(因为它取决于A1),将评估B3。
当然,如果你不能改变XLL,那么这无济于事......