【问题标题】:Excel - File optimisationsExcel - 文件优化
【发布时间】:2017-04-11 20:58:28
【问题描述】:

我正在处理一个相当大的 Excel 文档 (~9MB),它有 60 多张,每张都包含许多 CUBEVALUE 公式。

本文档需要 2 多分钟才能打开(不包括刷新值),虽然我已经阅读了许多建议,例如:

  • 工作表拆分(由于此文件的性质,不可能)
  • 更短的公式,(不可能)
  • 在 32 位和 64 位上测试(性能没有明显差异)

我想知道你们是否有任何方法可以优化 Excel 的打开时间而不会显着改变其中的内容,或者有任何进一步的建议。

【问题讨论】:

  • 我觉得你认为 9Mbs '相当大'很可爱!
  • 我曾经遇到过同样的问题,并在这方面做了很多研究。本质上归结为:批量做所有事情(!!)更有效率和更快。因此,您必须在 Excel 中考虑所有数据要求,将所有数据从服务器中提取到一个 GO 中(放入单独的工作表中),然后使用一些 Excel 内置公式从那里提取数据,例如这样:stackoverflow.com/questions/42695455/… 另一种方法是用 VBA 做所有事情。没有比这更快的了。但输出是固定的。

标签: excel performance optimization loading


【解决方案1】:
  1. 将其保存为 Excel 二进制工作簿 (.xlsb)。您可以保留宏,文件大小将是原始文件的 25-35%,并且许多操作(不仅仅是打开/关闭)会更快。

  2. 删除任何不必要地重新计算工作表的易失函数。 INDIRECT、OFFSET、ADDRESS、TODAY 和 NOW 都在 volatile 函数列表中。大多数都可以用非易失性替代品代替。

  3. 通过提高工作表公式和函数的效率来改进工作簿的剩余计算。可在 StackExchange 合作伙伴 Code Review - Excel 获得相关帮助。未提供示例,因此未提供具体帮助。

  4. 提高同一站点的任何子过程 cod 运行时间。大块应该使用数组“在内存中”处理,而不是逐个单元地循环,等等。同样,没有提供示例,因此没有提供具体帮助。

【讨论】:

  • 非常感谢您! XLSB 带来了巨大的变化:文件大小缩小了 30%,打开时间是之前的 1/3。
【解决方案2】:

如果您使用公司网络,请先尝试将文件下载到本地计算机,然后再打开。

这也可能取决于是否存在指向其他文件的链接,如果有的话,尽量减少它们的数量。

尽管如此,文件中的数据量 - 是打开时间的主要驱动因素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 2012-11-13
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    相关资源
    最近更新 更多