2012-02-08 13 views
0

Excel 2007とWin7 32bitを使用しています。プロセスエクスプローラをダウンロードして、実行中のプロセスに関する詳細情報を取得しました。Excel仮想メモリの問題

A1 = sum((B:J = 0,1,0)の場合)とctl-shift-enter(配列の場合)の式を入れても、仮想メモリは約800 MB以上。同じ数式をA2に入れようとすると、「リソース不足」エラーが発生します。私はエラーが発生したときに約1.2 GIGまでの仮想メモリスパイクを参照してください。私はそれが2GIGを超えていると推測しています(それはExcel 2007の限界だと思われます)が、プロセスエクスプローラではそれほど速くは表示されません。

私は数式を削除しても、仮想メモリは約800MB以上のままです。私は、使用される仮想メモリを減らすことはできません。その1つの公式をもう一度リソースに入れようとすれば、今では私が前にできることに1つの式を入れることさえできません。それは、使用されている仮想メモリの割り当てを解除していないようです。

私はWindows 7 64ビットとExcel 2010の64ビットに8 TBの仮想メモリがあることに気付いていますが、仮想メモリが割り当て解除されていないとメモリリークのようです。

数式は単なるブックブックの配列数式の多くがこの問題を抱えているようなアイデアを得るためのテストに過ぎません。

この場合、アップグレード以外に何ができるのですか?

+0

仮想メモリを引き起こすアレイは、引き続きアンドゥスタックに格納されます。私はそれがメモリがクリアされない理由だと思うだろう。 – Jesse

+0

(B:J = 0,1,0)が参照する必要があり、900万の仮想セルと比較してゼロを含む9個の仮想100万個のセルを作成する場合、配列式で列参照全体を使用しないことをお勧めします0または1を含むので、メモリが800 MBにしかならないことに驚いています) –

答えて

1

新しいワークブックを作成し、それらの列式をワークシート上で使用すると、メモリが急上昇しますか?列内のセルの一部またはすべてが「タッチ」されている場合、Excelはそれらを空白セルとして扱い、数式で使用します。一度も触れていないのであれば、それらは存在せず、Excelはそれらをメモリにロードしようとすべきではありません。

ブックが大量である場合は、セルの小さな部分を処理するように数式を再構成し、別の数式を使用して結果を実行して最終結果を得ることはできます。

+0

これは新しいワークブックであり、メモリは800 MB以上にスパイクします。私が最初に新鮮な本を開いたとき、それは約100前後から始まります。 – user441521

+0

ちょうどメモ、私はちょうどx64マシン上のExcel 2007でWindows 7でそれを試して、メモリスパイクを持っていませんでした。 –

関連する問題