2012-04-26 15 views
5

SOに関する他のいくつかの質問に記載されている問題をデバッグしていて、デバッグプロセス中に異常な動作が発生しています。Excel VBA「メモリ不足」のデバッグ方法

動作: 複雑な数式を貼り付けるときに「メモリ不足」エラーが発生しました。私が反復処理している20,000行のうち、半分しかエラーが出る前に数式が貼り付けられます。 事実上すべてのコードをコメントアウトしました。エラーは消え去ります。 コードの原因となっている特定のセクションを発見するために、コードの段階的なコメントを外します。 すべてのコードのコメントを外し、バグの発生を止めてください。

これは、同じExcelインスタンスで正確に同じコードが正常に機能し、元のバージョンに戻る前に、さまざまな軽いバージョンのコードを実行する必要があることを修正したことを意味します。これを引き起こす可能性があるのは何ですか?

+2

Ron Boveyの[コードクリーナー](http://www.appspro.com/Utilities/CodeCleaner.htm)を試してみることをお勧めします。コードをエクスポートして削除してから、エクスポートしたモジュールを再度挿入してオーバーホールします。 – brettdj

+0

+ 1私はbrettdjに同意します。コードクリーナーは本当に良いです。私はまたあなたにエラーを与えているそのような例について興味があります... –

+0

ありがとう@brettdjしかしコードクリーナーは助けなかった。 .xlaファイルを151kから159kにダウンさせることができました。これは私にとって魅力的です。 – Trindaz

答えて

3

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

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

... Improving Performance in Excel

でこの記事をチェックアウト有用な情報の多くは、おそらくあなたは、マクロを合理化するのに役立ちますその記事にあります。

この情報はお役に立ちましたか?