5

SO に関する他のいくつかの*質問で言及されている問題をデバッグしていて、デバッグ プロセス中に奇妙な動作に気付きました。

動作: 複雑な数式の貼り付け中に「メモリ不足」エラーが発生しました。私が繰り返している20,000行のうち、エラーの前に数式が貼り付けられているのは約半分だけです。事実上すべてのコードをコメントアウトすると、エラーはなくなります。原因となっているコードの特定のセクションを発見することを期待して、コードのコメントを段階的に解除します。すべてのコードのコメントを外して、バグの発生を停止してください!

これは、まったく同じコードが同じ Excel インスタンスで正常に機能したことを意味し、それを修正するには、元のバージョンに戻る前に、さまざまな軽量バージョンのコードを実行するだけで済みました。何が原因でしょうか?

4

1 に答える 1

3

実行しているデータが毎回まったく同じであると仮定すると、問題は環境にあったように思えます。問題は、オペレーティング システムのメモリが不足している可能性があります。Excel 2007 では、数式とピボット キャッシュに使用できるメモリが 2 ギガバイト (GB) に増えたため、おそらく問題にはなりません。ただし、もちろん、その時点でオペレーティング システムが使用できるメモリの量によっても制限されます。

問題が発生したのは、最初にテストしたとき、使用可能なオペレーティング システム メモリが実行時よりも低かったためです (実行中の他のプロセスから... スキャンを実行しているウイルス対策ソフトウェアなどのバックグラウンド プログラムによって制限を超えている可能性さえあります)。完全なマクロは後で。タスク マネージャーを開いた状態でマクロを実行して、物理メモリが不足しているかどうかを確認します。また、(Excel 2007 以降を使用していると仮定して) Excel が使用しているメモリの量を調べ、2 GB の制限に近づいているかどうかを確認します。これが問題になるとは思えませんが、少なくとも再確認する価値はあります。また、Zairja が言ったように、最初に計算を手動に設定していることを確認してください。

複雑な数式を使用しているとおっしゃいました... Excel でのパフォーマンスの向上に関するこの記事をご覧ください

この記事には、マクロの合理化に役立つと思われる多くの有用な情報があります。

これは役に立ちましたか?

于 2012-05-03T14:14:08.227 に答える