Excel 不愉快地显示大型 2D 范围公式数组



我有一个XLL,它返回带有FormulaArray的范围的类型2D数组的LPXLOPER结果。

事情进展顺利 <1s 更新,直到我达到大约 50x200 的大小。 此时,Excel 会卡住闪烁"就绪(漂亮的 Excel 图形("和"填充单元格(空进度条(",100% 使用 1 个核心,在返回值之前持续不到半分钟。

在 100x100 时需要 8-10 分钟。

在 200x100 时,我仍在等待它返回。

代码在所有情况下都是相同的。 我逐步浏览 VB,它在调用 RUN(...( 以填充数据数组时挂起。不会执行进一步的代码。 我在 XLL 中放置了断点,但它没有命中任何一个。我闯入Excel,它正在EXCEL中做Excel的东西.EXE或者在我甚至不知道存在的库中做Excel的东西。

任何人都知道 (a( 当 Excel 显示就绪/填充单元格时,它正在做什么,即使它显然还没有准备好,以及 (b( 为什么非线性增长 wrt 数据大小?

我测试了一个返回 200x100 数组的 XLL 及其几乎瞬时的。因此,问题必须是依赖构建或计算或擦除/构建单元格表。

尝试 - 将计算切换到手动以关闭计算
- 将 forcefullcomputing 设置为 true 以关闭依赖项构建
- 使用空工作簿进行测试以查看它是否由工作簿内容引起

最新更新