Workbook_SheetCalculateイベントを試してみましたが、ワークシートを再計算しましたが、動作しませんでした。VBA Workbook_SheetCalculateイベントをトリガする方法は?
このイベントをトリガーする方法はありますか?ここで
Workbook_SheetCalculateイベントを試してみましたが、ワークシートを再計算しましたが、動作しませんでした。VBA Workbook_SheetCalculateイベントをトリガする方法は?
このイベントをトリガーする方法はありますか?ここで
は一例であり、イベントのためのワークシートに次のコードを持っている:
Private Sub Worksheet_Calculate()
MsgBox "Calculating"
End Sub
そしてシートに、任意の細胞において、=RAND()
を入力する式は再計算を引き起こし、トリガイベント。
または標準モジュールから次のコマンドを使用します。
Public Sub Test()
'Application.Calculate ''could use this event for the workbook
With Worksheets("Sheet5") 'sheet containing the event code
.Calculate
End With
End Sub
キーは、例えば計算するシートの中で何かがあるということのようです=RAND()
。
私はいくつかの点で、他のポストから思い出し、以下Excel’s Smart Recalculation Engine
へのリンクが素早く抽出は言う:
Excelが正常にのみ可能セルの最小数を計算します。
Excelのスマート再計算エンジンは、通常、変更を追跡してのみ変更されているか、再計算を必要としてフラグ付けされている
- 細胞、数式、値や名前を再計算することで計算 時間を最小限に抑えます。
- 再計算が必要な他のセル、式、名前または値に依存するセル。
ので、あなただけのシートで定数を持っていた場合、あなたはWorksheet.Calculateを発行する場合でも、メッセージボックスは表示されません。あなたはシートから=RAND()
を取り除き、セルに1
を入れるだけでこれをテストできます。私は2枚の不揮発性式シートごと、およびこのワークブックモジュールで持っている場合
:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Debug.Print Sh.Name
End Sub
を私は呼び出しの両方のシート名を参照してください。
Application.CalculateFull
か:
Application.CalculateFullRebuild
が、出力なしと:
Application.Calculate
シートの1つに揮発性の式を追加すると、Application.Calculate
を呼び出すときにそのシートが取得されます。
まだ問題が残っている場合は、イベントコードやあなたのシートにある種類の数式など、いくつかの詳細を投稿する必要があります。
他のブックイベントは正しく機能していますか? sheet_recalculateをよく使うべきだと思います –
すべてを計算するには 'Application.CalculateFull'または' Application.CalculateFullRebuild'を使用してください –
@ TSion.DP、VBAには(sheet_recalculate)というイベントはありません。イベントは正常に機能します! –