1

Excel でコード (実行に 3 ~ 4 分かかります) を実行し、Excel またはユーザーフォームで何かをクリックすると、フリーズし、白くなり、ほとんどクラッシュします...実行の準備ができたら、すべてが再び正常になります.

もちろん、実行中にExcelで作業できないのは正常ですが、Excelの「クラッシュ」を回避するにはどうすればよいですか?

4

4 に答える 4

2

この種の問題を防ぐ最善の方法は、コードをベンチマークして、時間がかかっている原因を特定することです。コードの実行に 3 分以上かかる場合は、ほぼ確実に最適化の余地があります。

必要な手順は次のとおりです。

  1. 実行中のコード内に複数のブレークポイントを設定します。
  2. あるブレークポイントから次のブレークポイントに到達するまでにかかる時間。
  3. 犯人を特定したら、リファクタリングします。
  4. パフォーマンスを改善できない場合は、非効率的なコードを投稿して助けを求めてください。

注意が必要なパフォーマンスの遅い悪名高いアンチパターンは、ループ中に何かを選択することです。

于 2013-03-16T04:47:12.080 に答える
0

Excel が応答しなくなる無限ループがないことを確認したら、コードを最適化してください。

これvba-excel コードの最適化に関する非常に興味深い読み物であり、いくつかのプラクティスは、私が作成した大きくて時間のかかるモジュールに実際に影響を与えました。それが役に立てば幸い。

于 2013-03-22T16:38:08.277 に答える
0

あなたがする必要があるのは、進行状況バーのように、Excel UI をオーバーレイするカスタム UserForm を作成することです。また、modal form. modal formは実行を停止するため、使用できません。

于 2013-03-15T16:33:21.660 に答える