変更イベントに関する一般的な問題があります。変更イベントの無限ループをどのように解決できますか?
ユーザーがフィルタやセルなどの変更を加えた場合に更新されるユーザーフォームとワークシートを設計しました。
問題は今、以下である:何かが変更された場合
、変更イベントがトリガされ、いくつかのことを変更し、これは、同じイベントをトリガし(細胞、リスト、フィルタのect。)。このように、無限ループの変更イベントが発生します。
Public EventsEnabled as boolean
Sub Change_Event()
If EnableEvents Then
EnableEvents=False
enter code which cannot triggers Change_Event here
End If
EnableEvents=True
End Sub
だから基本的に私は可能とした、私は自分で使う変更イベントを無効にすることで、この問題を迂回しています:私の現在のソリューションはfollwingです。
質問:これは最高の解決策ですか、それとももっと簡単で速く、よりエレガントなものがありますか? VBAプロジェクトがリセットされたとき、あなたのイベントが動作することを確認
Public EventsDisabled as boolean
Sub Change_Event()
If EventsDisabled Then Exit Sub
EventsDisabled=True
enter code which cannot triggers Change_Event here
EventsDisabled=False
End Sub
これらの変更:
イベントが有効になっていることを確認する必要がありますか?そうでない場合、このコードは実行されていますか? –