2017-04-11 53 views
3

我正在使用一个相当大的Excel文档(〜9MB),其大小超过60张,每个文档中包含许多CUBEVALUE公式。Excel - 文件优化

这份文件需要2分钟才能打开(不计值的刷新),虽然我已经读了很多建议,例如:

  • 拆分工作表(不可能的,因为这个文件的性质)
  • 较短的公式,(不可能)
  • 在32位和64位测试(性能没有明显不同)

我在想,如果你们跨越的任何方式来优化Excel的开放时间,而不会明显改变Excel中的内容或任何进一步的建议。

+1

我认为这很可爱,你认为9Mbs是'*相当大*'! – Jeeped

+1

我曾经有同样的问题,并在这方面做了大量的研究。从本质上来说,这归结于:大块的一切都是(!!)更高效和更快。因此,您必须在Excel中考虑您的所有数据需求,将所有数据从服务器(从一个单独的工作表)中提取出来,然后使用一些Excel内置公式:http://stackoverflow.com/questions/42695455/control-database-form-excel-through-vba/42720826#42720826另一种方法是用VBA做所有事情。没有比这更快的了。但输出已修复。 – Ralph

回答

3
  1. 将它另存为Excel二进制工作簿(.xlsb)。你可以保留宏,文件大小是原来的25-35%,许多操作(不仅仅是打开/关闭)会更快。

  2. 摆脱任何不必要地重新计算工作表的易失性函数。 INDIRECT,OFFSET,ADDRESS,TODAY和NOW都属于易失性函数列表。大部分可以用非易失性替代品替代。

  3. 通过使工作表公式和函数更有效,改进工作簿的剩余计算。有关这方面的帮助,请参见Code Review - Excel,这是一个StackExchange合作伙伴。没有提供任何示例,因此没有提供具体帮

  4. 改善在同一地点的任何子程序鳕鱼运行时间。大块应该用数组进行“内存”处理,而不是通过逐个单元循环等等。再次,没有提供任何示例,因此没有提供特定的帮助。

+1

非常感谢您的支持! XLSB取得了巨大的差异:文件大小减小了30%,是之前开放时间的三分之一。 – Erika

1

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

它也可能依赖于其他文件链接的存在,如果有其他文件,尽量减少它们的数量。

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