Nie określić, jaka wersja programu Excel lub jaka wersja systemu Windows (lub Macintosh), więc będzie określić, że używam Excel 2010 z Office 32-bitowy Windows 7 Ultimate 64- nieco ...
Jeśli chcesz zachować skoroszyt otwarty i uruchomienie kodu w określonym czasie w przyszłości, a następnie spróbuj to ..
Włóż nowy moduł kodu do swojego projektu lub użyj tego, który już masz w swoim projekcie.
Tworzenie podprogramu planującego, jak pokazano poniżej:
Sub Scheduler()
'-- RUNS SUB(S) (OR FUNCTIONS) AT TIME SCHEDULED.
Application.OnTime TimeValue("11:46:40"), "TheScheduledSub"
End Sub
Tworzenie podprogramu (lub funkcja), który chcesz uruchomić. Oto jeden dla tego przykładu:
Sub TheScheduledSub()
Debug.Print "TheScheduledSub() has run at " & Time
End Sub
Scheduler()
wykona TheScheduledSub()
dokładnie w określonym czasie wewnątrz Scheduler()
, zdefiniowanej przez TimeValue
. Możesz przeczytać więcej o TimeValue
here.
Prawdopodobnie mógłbyś przekazać wartość czasu, którą podrzędny Scheduler() ma wykonać, wykonując swoje sub (s) lub funkcje jako parametr w podsieci.
Prawdopodobnie można uruchomić od 5 godzin, powiedzmy. TO ZNACZY. Application.OnTime Now + TimeValue ("05:00:00"), "TheScheduledSub"
A może za dzień? Pobaw się z tym.
Otrzymałem dwie subskrypcje do wykonania w różnych momentach. Próbowałem też wykonać dwa jednocześnie. Moje doświadczenie z dwoma różnymi podsłuchami wykonywanymi w tym samym czasie było takie, że drugi sub wydawał się wykonywać przed pierwszym, ale nie w pełni go zbadałem. Więc YMMV.
Nie sądzę, że Excel VBA jest zdolny do wielowątkowych, więc miej to na uwadze. Korzystam z 32-bitowego programu Excel 2010 z pakietu Office. Nie wiesz, jak zachowuje się 64-bitowy program Office Excel lub w jakiejkolwiek innej wersji lub platformie.W każdym razie, wielowątkowość/wielozadaniowość Excel VBA nie jest tym, o co prosiłeś, ale należy to wziąć pod uwagę.
Widząc to pytanie i bawiąc się powyższym, mogę wymyślić kilka pomysłów, które chcę wypróbować!
To może pomóc https://stackoverflow.com/questions/22771185/how-to-set-recurring-schedule-for-xlsm-file-using-windows-task -scheduler – Justin