Excel 2010 VBA 入门 058 定时运行程序
目錄
示例? ?
實現代碼
Application.OnTime方法
使用Application. OnTime重復執行程序
取消Application. OnTime定時器的方法
示例? ?
在許多時候,開發者希望能夠在指定時間運行某個程序,該如何實現?本例中,希望為兩個按鈕設置代碼(如圖所示)。當單擊“開始”按鈕后,A2單元格的時間開始啟動,并且每秒變動一次,使其值為當前計算機的時間;當單擊“停止”按鈕后,則停止A2的時間變動。該如何實現?
實現代碼
Option ExplicitDim dNextTime As DateSub StartTimer()'設定下次運行時間為當前時間中1秒dNextTime = DateAdd("s", 1, Now)'定時運行程序本身Application.OnTime dNextTime, "StartTimer"'改變單元格的值為當前時間Cells(2, 1).Value = Now End SubSub StopTimer()Application.OnTime dnexttimer, procedure:="StartTimer" End SubApplication.OnTime方法
Application. OnTime方法可以創建一個定時器使某個過程在指定的時間運行,其語法如下:
Application.OnTime(EarliestTime,Procedure[[,LatestTime],Schedule])- ? ? 參數EarliestTime為預定的程序開始時間。
- ? ? 參數Procedure為過程的名稱。
- ? ? 參數LatestTime為程序最后的運行時間。當時間到達EarliestTime所規定的時間時,若Excel程序未準備好執行程序(一般是在單元格編輯狀態或者打開某對話框),則VBA將會等待,直到Excel程序能夠開始運行由參數Procedure所指定的過程。若設定? ? ? 了該參數,則遇上述情況時,若直到超過此LatestTime時Excel仍未準備好執行程序,則不會再次執行由參數Procedure所指定的過程。
- ? ? 參數Schedule為邏輯值,當為True(默認值)時,表示創建一個定時器,在由參數EarliestTime所指定的時間運行由參數Procedure所指定的過程,當為False時,表示取消由參數EarliestTime所指定運行時間的定時器。
使用Application. OnTime重復執行程序
? ? 在使用OnTime方法重復執行同一個程序時,經常采取本例所示的方法:即使用OnTime在當前時間之后的一個時間再次執行其語句所在的過程。當該過程再次被執行時,OnTime語句又再次被執行,因而又創建了一個定時器,使得該過程可以被反復執行,直到參數Schedule為False的OnTime語句來取消定時器為止。
取消Application. OnTime定時器的方法
? ? 當需要取消由OnTime方法創建的定時器時,需要再次使用OnTime方法,并將參數Schedule設置為False。而當使用OnTime方法撤銷定時器時,必須準確地給出EarliestTime參數,否則程序將出現如圖所示的錯誤。為了避免該錯誤的發生,可以在模塊中定義一個公共變量用以存放定時器的準確時間,并在創建定時器時進行記錄。當需要取消時,可以使用該變量描述準確時間并傳遞給EarliestTime參數。
?
總結
以上是生活随笔為你收集整理的Excel 2010 VBA 入门 058 定时运行程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器2008修改虚拟内存,Window
- 下一篇: GRUB4DOS资源索引帖,欢迎跟帖补充