application.ontime基本MDSN解說
基本功能就是讓使用者可以設定一個時間點,自動執行某一程序。
字串轉換時間,以 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) (含) 的時間表示轉換。
基本語法:
Application.OnTime 時間,程序名稱 P.S 程序名稱前後要加上雙引號 單純執行一次: 現在時間往後+10秒後執行TEST程序 RUN_TIME=TimeValue(NOW())+TimeValue("00:00:10") Application.OnTime RUN_TIME,"TEST" 取消: Application.OnTime RUN_TIME,"TEST",FALSE
連續固定間隔時間執行:
SUB A()
RUN_TIME=TimeValue(NOW())+TimeValue("00:00:10")
Application.OnTime RUN_TIME,"TEST"
END SUB
SUB TEST
DEBUG.PRINT NOW()
CALL A
END SUB
解說執行a程序後,自目前時間後10秒執行test程序;執行test程序後,再次呼叫a程序做下次定時自動執行設定。
連續固定間隔時間執行,怎取消?
小編測試很多次,但總有不給力的時候。
但以下這方法可以參考參考。
宣告一個全域變數的陣列,很來存放每次執行的時間;以及設定一個步進值控制陣列位置
dim time_array(2000) as string
time_array_add=0
SUB A()
RUN_TIME=TimeValue(NOW())+TimeValue("00:00:10")
Application.OnTime RUN_TIME,"TEST"
'每次執行後就存放時間在陣列內
time_array(time_array_add)=RUN_TIME
time_array_add=time_array_add+1
END SUB
SUB TEST
DEBUG.PRINT NOW()
CALL A
END SUB
'取消則透過for迴圈取消所有設定過的時間,一勞永逸。
SUB canel_time
on error resume next
for i=0 to time_array_add
Application.OnTime RUN_TIME(i),"TEST",false
next
END SUB
沒有留言:
張貼留言