我想在我的Excel工作表中啓動和停止兩個計時器。這是我有:vba啓動停止計時器?
當工作表被打開時,該模塊被觸發:
Sub SetOpenTimer()
OpenTimer = Now + TimeValue("00:00:10")
Application.OnTime OpenTimer, "StartTimerShutdownForm"
End Sub
10秒後(在這個例子中),副startimershutdownform
被觸發:
Sub StartTimerShutdownForm()
UserForm1.Show
End Sub
這顯示消息顯示的用戶表單。在用戶窗體初始化子子setformtimer
被觸發:
Sub setFormTimer()
FormTimer = Now + TimeValue("00:00:10")
Application.OnTime FormTimer, "Shutdown"
End Sub
如果該計時器在setformtimer
結束,子shutdown
是triggerd 本次關閉工作,但在用戶窗體有用戶按鈕取消setformtimer
:
Sub stopFormTimer()
Application.OnTime EarliestTime:=FormTimer, _
Procedure:="setOpenTimer", Schedule:=False
End Sub
此假設停止setformtimer
,但它不工作。 當這個定時器停止時,它假定重新啓動當文檔被打開時觸發的定時器,所以它重新啓動,但停止定時器代碼不起作用。
在stopFormTimer
,setFormTimer
和StartTimerShutdownForm
所在的模塊,在上面我宣佈這些
Dim OpenTimer As Date
Dim FormTimer As Date
缺少什麼我在這裏?爲什麼我不能停止定時器並重新啓動第一個定時器?
這可能是因爲Excel不在'Ready-Mode'中,因爲Form被顯示? 'Application.OnTime,LatestTime參數'中的更多信息。 – dee
不理解就緒模式。基於此,我將如何解決我的問題?我無法找到任何關於「準備模式」的內容,解釋瞭如何將其設置爲準備就緒...似乎其他可以使定時器停止..不知道爲什麼我的Excel不會處於「就緒模式」。 – Behedwin