如何强制Excel单元格评估的顺序

我正在使用一个自定义的Excel插件,它将多个函数导出到Excel中,这些函数做了很多“幕后”工作。 我想强制Excel以特定顺序评估对这些函数的调用。 那就是,如果

A1 = AddinFunction(“Foo”)

B3 = AnotherAddinFunction(“Bar”)

那么我想强制Excel在B3之前评估A1。 我怎样才能达到最小的黑客攻击,最好不使用VBA?

这可以归结为如何在Excel中完成expression式树的评估。 它需要一个理由来评估你的function的顺序。 您可以使B3取决于A1的结果,例如B3 = IF(ISBLANK(A1),AnotherAddInFunction(“Bar”),AnotherAddInFunction(“Bar”))

没有很长时间XLLs,所以这是从内存。

如果您可以将代码更改为您的XLL插件,则可以将虚拟“触发器”参数添加到要sorting的调用(添加可选的XLOPER参数)。 然后,通过添加对单元格的引用作为虚拟触发器参数,使该调用取决于您希望遵循的单元格。

所以B3结束为AnotherAddinFunction(“Bar”,A1);

函数本身忽略触发器参数,并且每当A1改变时B3将被评估,并总是在A1之后(因为它取决于A1)。

当然,如果你不能改变XLL那么这没有帮助…