0

これが私が持っているコードです。理論的には機能します。私が抱えている問題は、シートを入力または編集しているときに、ワークシートが保存されてシャットダウンすることです。

ワークブックで作業している間はタイマーがリセットされません。

Option Explicit
Private Sub Workbook_Open()
    EndTime = Now + TimeValue("00:05:00")
    RunTime
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If EndTime Then
        Application.OnTime _
                EarliestTime:=EndTime, _
                Procedure:="CloseWB", _
                Schedule:=False
        EndTime = Empty
    End If
    EndTime = Now + TimeValue("00:10:00")
    RunTime
End Sub

これは ThisWorkbook 内にあり、すべてを包含する必要があると考えています。何か不足していますか?タイマーは明らかにリセットされるべきときにリセットされていません。

4

1 に答える 1

0

私が見る限り、スケジュールをキャンセルする呼び出しが機能しない唯一の理由は次のとおりです。

  • プロシージャ名が異なる (CloseWB) または
  • タスクが最初にスケジュールされてから EndTime が変更された、または
  • RunTime はワークブックを閉じる何かを行います...
于 2012-06-22T13:58:40.080 に答える