XLL可以从单单元格公式返回任意大小的数组吗



我已经在SO上查看了许多关于XLL和数组的线程,但我现在比以往任何时候都更困惑。很抱歉,如果以下内容完全没有意义,但这就是我来这里的原因。。。

有人告诉我,编写一个可以返回任意数据数组的XLL函数是不可能的。您可以从代码中返回数组,但必须从数组公式(CSE)中调用它们。这意味着返回空间的大小必须预先定义。

在我们的例子中,函数将返回N行(和/或列)的数据,我们事先不知道会有多少。理想情况下,我们只需将一个公式放在一个单元格中,并让它根据需要向左和向下使用尽可能多的单元格。

我在这里发现的代码示例并没有强烈建议其中一个,但它似乎类似XLOPER12(可能还有XLOPER)对返回的大小没有限制。Excel在返回后是否有限制?

XLL UDF(也是VBA UDF)或可以返回可变大小的数组,但Excel只会将结果分配给UDF输入的单元格。要处理未知数量的结果,您可以:

将UDF输入所需的最大单元格数

或者向内部数组返回句柄,并构建其他可以解释句柄的UDF

或者构建一个resizer平台:请参阅
http://colinlegg.wordpress.com/2014/08/25/self-extending-udfs-part-1/
https://groups.google.com/forum/#!topic/exceldna/oBKpr0BCgmU

最新更新