Ich verwende das Ereignis Application.Ontime, um ein Zeitfeld aus einer Zelle zu ziehen und ein Unterprogramm für die Ausführung zu diesem Zeitpunkt zu planen. Mein Ereignis Application.Ontime läuft auf das Ereignis Workbook_BeforeSave. Wenn also ein Benutzer (ändert die gewünschte Zeit + speichert die Arbeitsmappe) mehrfach, werden mehrere Application.Ontime-Ereignisse erzeugt. Theoretisch könnte ich jedes Ereignis mit einer eindeutigen Zeitvariablen verfolgen aber gibt es eine Möglichkeit, ausstehende Ereignisse zu prüfen/zu analysieren/abzubrechen?
Private Sub Workbook_BeforeSave
SendTime = Sheets("Email").Range("B9")
Application.OnTime SendTime, "SendEmail"
End Sub
Private Sub Workbook_BeforeClose
Application.OnTime SendTime, "SendEmail", , False
End Sub
Wenn ich also:
B9 auf 12:01 ändern, die Arbeitsmappe speichern
ändern Sie B9 in 12:03, speichern Sie die Arbeitsmappe
B9 auf 12:05 ändern, die Arbeitsmappe speichern
B9 auf 12:07 ändern, die Arbeitsmappe speichern
usw.
Am Ende werden mehrere Ereignisse ausgelöst. Ich möchte nur EIN Ereignis auslösen (das zuletzt geplante)
Wie kann ich ALLE ausstehenden Ereignisse (oder zumindest aufzählen sie) auf das Workbook_BeforeClose-Ereignis abbrechen?