用過 Excel 97 里的加載宏 "定時保存" 嗎?可惜它的源程序是加密的,現(xiàn)在就上傳一篇介紹實現(xiàn)它的文檔。
在 Office 里有個方法是 application.ontime ,具體函數(shù)如下:
expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
如果想進(jìn)一步了解,請參閱 Excel 的幫助。
這個函數(shù)是用來安排一個過程在將來的特定時間運(yùn)行,(可為某個日期的指定時間,也可為指定的時間段之后)。通過這個函數(shù)我們就可以在 Excel 里編寫自己的定時程序了。下面就舉兩個例子來說明它。
1.在下午 17:00:00 的時候顯示一個對話框。
Sub Run_it()
Application.OnTime TimeValue("17:00:00"), "Show_my_msg"
'設(shè)置定時器在 17:00:00 激活,激活后運(yùn)行 Show_my_msg 。
End Sub
Sub Show_my_msg()
msg = MsgBox("現(xiàn)在是 17:00:00 !", vbInformation, "自定義信息")
End Sub
2.模仿 Excel 97 里的 "自動保存宏",在這里定時 5 秒出現(xiàn)一次
Sub auto_open()
MsgBox "歡迎你,在這篇文檔里,每 5 秒出現(xiàn)一次保存的提示!", vbInformation, "請注意!"
Call runtimer '打開文檔時自動運(yùn)行
End Sub
Sub runtimer()
Application.OnTime Now + TimeValue("00:00:05"), "saveit"
' Now + TimeValue("00:15:00") 指定在當(dāng)前時間過 5 秒鐘開始運(yùn)行 Saveit 這個過程。
End Sub
Sub SaveIt()
msg = MsgBox("朋友,你已經(jīng)工作很久了,現(xiàn)在就存盤嗎?" & Chr(13) _
& "選擇是:立刻存盤" & Chr(13) _
& "選擇否:暫不存盤" & Chr(13) _
& "選擇取消:不再出現(xiàn)這個提示", vbYesNoCancel + 64, "休息一會吧!")
'提示用戶保存當(dāng)前活動文檔。
If msg = vbYes Then ActiveWorkbook.Save Else If msg = vbCancel Then Exit Sub
Call runtimer '如果用戶沒有選擇取消就再次調(diào)用 Runtimer
End Sub
以上只是兩個簡單的例子,有興趣的話,可以利用 Application.Ontime 這個函數(shù)寫出更多更有用的定時程序。