Non si specifica quale versione di Excel o di quale versione di Windows (o Macintosh) quindi mi specificare che sto usando Excel 2010 da Office a 32 bit su Windows 7 Ultimate 64- po ...
Se si desidera mantenere la cartella di lavoro aperto e l'esecuzione di codice in un momento specifico, in seguito, quindi provare questo ..
Inserisci un nuovo modulo di codice nel tuo progetto -oppure- usa quello che hai già nel tuo progetto.
Creare una subroutine scheduler come illustrato di seguito:
Sub Scheduler()
'-- RUNS SUB(S) (OR FUNCTIONS) AT TIME SCHEDULED.
Application.OnTime TimeValue("11:46:40"), "TheScheduledSub"
End Sub
Creare una subroutine (o funzione) che si desidera eseguire. Qui è uno per questo esempio:
Sub TheScheduledSub()
Debug.Print "TheScheduledSub() has run at " & Time
End Sub
Scheduler()
eseguirà TheScheduledSub()
al momento esatto specificato all'interno Scheduler()
, definita da TimeValue
. Puoi leggere di più su TimeValue
here.
probabilmente si potrebbe passare il valore di tempo si desidera che la pianificazione() sub per eseguire il vostro sub (s) o la funzione (s) come parametro nel sotto.
Probabilmente si potrebbe eseguire un sub 5 ore da adesso, diciamo. OSSIA Application.OnTime Now + TimeValue ("05:00:00"), "TheScheduledSub"
o forse un giorno da oggi? Giocaci.
Ho ottenuto due sottotitoli da eseguire in momenti diversi. Ho anche provato ad eseguirne due allo stesso tempo. La mia esperienza con due diversi sottotitoli in esecuzione contemporaneamente era che il secondo sottotitolo sembrava essere eseguito prima del primo, ma non l'ho esplorato a fondo. Quindi YMMV.
Non credo che Excel VBA è multithread in grado in modo da tenere a mente. Sto eseguendo Excel 2010 a 32 bit dalla suite Office. Non sono sicuro di come si comporta Office Excel a 64 bit o di qualsiasi altra versione o piattaforma.In ogni caso, il multithreading/multitasking Excel VBA non è quello che hai chiesto, ma è da considerare.
Vedendo questa domanda e giocando con quanto sopra mi viene in mente un paio di idee che voglio provare me stesso!
Questo potrebbe aiutare https://stackoverflow.com/questions/22771185/how-to-set-recurring-schedule-for-xlsm-file-using-windows-task -scheduler – Justin