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