2017-04-11 12 views
3

かなり大きいExcelドキュメント(〜9MB)で、60枚以上の用紙があり、それぞれに数多くのCUBEVALUEの式が含まれています。Excel - ファイルの最適化

例えばこの文書は、(値のリフレッシュカウントされません)を開くために2分以上かかるし、私は多くの勧告を読んでいる間、:

  • ワークシートの分割(可能ではないため、このファイルの性質上)
  • 君たちのいずれかの方法に出くわした場合、私は思っていた両方の32ビットおよび64ビット上でテスト
  • 短い式、(可能ではない)
  • (パフォーマンスは著しく異なるものではない)

その中の内容を大幅に変更することなくExcelのオープニング時間を最適化したり、それ以上の提案をすることができます。

+1

9Mbsは「*かなり大きい」と思うのはかわいいと思います! – Jeeped

+1

私は同じ問題を一度持ち、その点で多くの研究をしました。本質的には、これは次のようになります。バルクのすべてを行うことは、より効率的で高速な(!!)だから、あなたはExcelであなたのすべてのデータ要件について考えなければならないでしょう、そのデータをすべて1つのGOでサーバから(別のシートに)取り出してから、このようないくつかのExcel組み込み式を使ってそこからデータを取り出します:http://stackoverflow.com/questions/42695455/control-database-form-excelthrough-vba/42720826#42720826代わりにVBAですべてを行うことです。それ以上の速さはありません。しかし、出力は修正されています。 – Ralph

答えて

3
  1. Excelバイナリブック(.xlsb)として保存します。マクロを保持することができます。ファイルサイズはオリジナルの25〜35%になり、多くの操作(開閉だけでなく)が高速になります。

  2. 不必要にワークシートを再計算している揮発性関数を取り除きます。間接、オフセット、アドレス、今日、今は揮発性関数のリストの1つです。大半は不揮発性の代替品で置き換えることができます。

  3. ワークシートの数式と関数をより効率的にすることで、ワークブックの残りの計算を改善しました。これに関するヘルプは、StackExchangeパートナーのCode Review - Excelにあります。例は提供されていないので、具体的なヘルプは提供さ

  4. 同じサイトでサブプロシージャのコード実行時間を改善しました。大きなブロックは配列で処理され、セルごとにループされません。また、例は提供されていないので、特定のヘルプは提供されません。

+1

ありがとうございます! XLSBは、ファイルサイズが30%小さく、前の開封時間の1/3に大きな違いをもたらしました。 – Erika

1

企業ネットワークを使用している場合は、最初にファイルをローカルコンピュータにダウンロードしてから開きます。

また、他のファイルへのリンクが存在するかどうかによっては、その数が最小限に抑えられます。

それでも、ファイル内のデータ量が、オープン時間の主な要因です。