2010-02-26 69 views
2

我有很多用戶,我支持要求事情自動發生(更多的自動化,但這是另一點!)。Excel VBA Application.OnTime。我認爲使用這種想法是一個糟糕的主意......無論是哪種方式?

想要每120秒發生一次事件(請參閱我的其他問題),另一個想要在每個工作日下午5點發生一件事情。這必須在Excel工作表上,所以VBA和插件等一樣是不可能的,因爲它需要自包含。

我有一個很不喜歡使用Application.OnTime我認爲它的危險性和不可靠性,其他人都認爲什麼?


編輯: 交叉後在VBA Macro On Timer style to run code every set number of seconds, i.e. 120 seconds

回答

11

Application.OnTime絕對是100%可靠的,是最肯定沒有危險。但是,通過VBA公開的只有,並且出於某種原因,您將VBA視爲「不允許」,所以此選項似乎對您無效。

我通常不會使用OnTime進行長期調度,例如安排Excel在每天下午5點執行命令。問題是,如果用戶關閉了Excel,那麼OnTime調度就會丟失。在這種情況下,您需要使用Task Scheduler,或創建您自己的應用程序或Windows服務來打開Excel並執行您的命令。

但是,對於每120秒發生一次事件的調度,使用Application.OnTime對於這一點來說是完美的 - 您只需要重新計劃OnTime,以便在每次OnTime回調時再次發生120秒,因爲OnTime僅在每個計劃中觸發一次,而不是重複。我絕對會使用VBA來完成這項任務。如果你不想讓VBA開始這個動作,那就好了:只需將VBA包含在工作簿中,然後由你的程序或任務計劃程序打開它。從那時起,VBA代碼每120秒就會啓動一次。

有意義嗎?

相關問題