Sie geben nicht an, welche Version von Excel oder welche Version von Windows (oder Macintosh), so werde ich angeben, dass ich Excel 2010 von Office 32-Bit auf Windows 7 Ultimate 64-Bit verwende...
Wenn Sie Ihre Arbeitsmappe geöffnet lassen und den Code zu einem bestimmten Zeitpunkt später ausführen möchten, versuchen Sie dies.
Fügen Sie ein neues Codemodul in Ihr Projekt ein - oder verwenden Sie eines, das Sie bereits in Ihrem Projekt haben.
Erstellen Sie eine Scheduler-Unterroutine wie unten gezeigt:
Sub Scheduler()
'-- RUNS SUB(S) (OR FUNCTIONS) AT TIME SCHEDULED.
Application.OnTime TimeValue("11:46:40"), "TheScheduledSub"
End Sub
Erstellen Sie ein Unterprogramm (oder eine Funktion), die Sie ausführen möchten. Hier ist eine für dieses Beispiel:
Sub TheScheduledSub()
Debug.Print "TheScheduledSub() has run at " & Time
End Sub
Scheduler()
wird ausgeführt TheScheduledSub()
genau zu dem Zeitpunkt, der in Scheduler()
definiert durch TimeValue
. Sie können mehr lesen über TimeValue
aquí .
Sie könnten wahrscheinlich den Zeitwert, den der Scheduler()-Sub zur Ausführung Ihrer Sub(s) oder Funktion(en) benötigt, als Parameter im Sub übergeben.
Sie könnten wahrscheinlich eine Zeit unter 5 Stunden laufen, sagen wir mal. D.H.. Application.OnTime Now + TimeValue("05:00:00"), "TheScheduledSub"
oder vielleicht in einem Tag von jetzt an? Spielen Sie damit herum.
Ich habe es geschafft, dass zwei Subs zu unterschiedlichen Zeiten ausgeführt wurden. Ich habe auch versucht, zwei zur gleichen Zeit auszuführen. Meine Erfahrung mit zwei verschiedenen Unterprogrammen, die gleichzeitig ausgeführt werden, war, dass das zweite Unterprogramm vor dem ersten ausgeführt zu werden schien, aber ich habe es nicht vollständig erforscht. Also YMMV.
Ich glaube nicht, dass Excel VBA multithread-fähig ist, also bedenken Sie das. Ich verwende das 32-Bit-Excel 2010 aus der Office-Suite. Ich bin mir nicht sicher, wie sich das 64-Bit-Office-Excel verhält, und auch nicht, wie sich andere Versionen oder Plattformen verhalten. Wie auch immer, Multithreading / Multitasking Excel VBA ist nicht das, was Sie gefragt haben, aber es ist zu berücksichtigen.
Nachdem ich diese Frage gesehen und mit den obigen Informationen gespielt habe, fallen mir einige Ideen ein, die ich selbst ausprobieren möchte!