我有一个XLL,它返回带有FormulaArray的Range的2D数组类型的LPXLOPER结果。
事情进展顺利,<1s更新,直到我达到大约50x200的大小为止。那时,Excel在1%内核的100%使用率下一直闪烁“ Ready(漂亮的Excel图形)”和“填充单元格(空白进度栏)”,并在返回值之前持续不到半分钟。
在100x100分辨率下,需要8-10分钟。
在200x100分辨率下,我仍在等待它返回。
在所有情况下,代码都是相同的。我浏览了VB,它挂在调用RUN(...)以填充数据数组上。不再执行任何代码。我在我的XLL中放置了断点,但没有碰到任何断点。我闯入了Excel,它正在EXCEL.EXE或我什至不知道存在的库中执行Excel的工作。
任何人都知道(a)尽管Excel显然还没有准备好,但当它说“就绪/填充单元格”时Excel正在做什么,以及(b)为什么数据量会非线性增长?
答案 0 :(得分:0)
我测试了一个返回200x100数组的XLL,它实际上是瞬时的。因此,问题必须是依赖关系建立或计算或擦除/建立单元格表。
尝试
-将计算切换为手动以关闭计算
-将forcefullcalculation设置为true以关闭依赖关系构建
-使用空的工作簿进行测试,看是否是由工作簿内容引起的