0

私は複雑なスプレッドシートベースのソリューションに取り組んでいます。シート内のイベントがExcelでキャッチされなくなったように見える問題が発生する場合があります。

現在、この動作を再現することはできませんが、問題のPCにアクセスしました。以下にブレークポイントを設定したにもかかわらず、いずれも呼び出されていないことを確認できます。

Worksheet_Activate()
Worksheet_Deactivate()
Worksheet_Change(ByVal Target As Range)
Worksheet_BeforeDoubleClick(ByVal Target As Range、Cancel As Boolean)

もちろん、これは古い古典によって解決されます'あなたはそれ(Excel)を再びオンとオフにするのに疲れましたか?

Stop / MsgBox "blah"をメソッドに入れて、それがVBEのブレークポイントにすぎないかどうかを確認しましたが、何も得られませんでした。

それで、なぜExcelがイベントを提起するのに長けていないのか誰もが知っていますか?

乾杯。

FRD

4

2 に答える 2

4

次のコードを確認してください。

Application.EnableEvents=False

オフにした場合、手順が終了してもExcelは再度オンにしないため、手順の最後にこのパラメーターを必ずTRUEに設定してください。

プロシージャの開始時にFalseに設定し、再びTrueに設定される前にプロシージャを停止すると、オフのままになります。

行に到達する前にコードがクラッシュした場合Application.EnableEvents=Trueも、コードはオフのままになります。

于 2011-02-15T15:04:22.490 に答える
0

数式が含まれていないシートでこの問題が発生したことがあります...これが、ExcelがCalculateイベントを実行しなかった理由です。

注..データテーブルがフィルタリングされた場合にコードを起動する必要があったCalculateイベント..最終的に行ったのは、テーブルの非表示セルの列を指す小さなSum()を追加することでした。シートがフィルタリングされるたびに発生するcalculateイベントがありました:)

于 2017-02-03T02:49:14.417 に答える