我有一个XLL,它返回一个带有FormulaArray的范围的二维数组类型的LPXLOPER结果。
在我达到50x200大小之前,一切都会顺利地进行<1s更新。在这一点上,Excel在100%使用1核的情况下被卡在闪烁“就绪(漂亮的Excel图形)”和“填充单元格(空进度条)”,这种情况持续不到半分钟,然后返回值。
在100x100的情况下需要8-10分钟。
在200x100的情况下,我仍然在等待它返回。
代码在所有情况下都是相同的。我遍历VB,它在调用RUN(...)时挂起来填充数据数组。不会执行更多代码。我在我的XLL中设置了断点,但它没有命中任何断点。我进入Excel,它在EXCEL.EXE或我甚至不知道存在的库中做Excel的事情。
有人知道(a)当Excel说准备好/填充单元格时,它在做什么吗,尽管它显然还没有准备好,以及(b)为什么wrt数据大小呈非线性增长?
发布于 2018-08-14 16:58:15
我测试了一个返回200x100数组的XLL,它几乎是瞬间返回的。所以问题要么是依赖关系构建,要么是计算,要么是擦除/构建单元格表。
试一试
将计算切换为手动强制计算将关闭calculation
引起
https://stackoverflow.com/questions/51829906
复制相似问题