VBA系列講座(7):如何在Excel里使用定時器

發表于:2007-04-28來源:作者:點擊數: 標簽:VBA何在講座Excel系列
用過 Excel里的加載宏 "定時保存" 嗎?可惜它的源程序是加密的,現在就上傳一篇介紹實現它的文檔。 在 Office 里有個方法是 application.ontime ,具體函數如下: expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule) 如果想進一步了解,請參
用過 Excel 里的加載宏 "定時保存" 嗎?可惜它的源程序是加密的,現在就上傳一篇介紹實現它的文檔。
在 Office 里有個方法是 application.ontime ,具體函數如下:
expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
如果想進一步了解,請參閱 Excel 的幫助。

這個函數是用來安排一個過程在將來的特定時間運行,(可為某個日期的指定時間,也可為指定的時間段之后)。通過這個函數我們就可以在 Excel 里編寫自己的定時程序了。下面就舉兩個例子來說明它。

1.在下午 17:00:00 的時候顯示一個對話框。
Sub Run_it()
    Application.OnTime TimeValue("17:00:00"), "Show_my_msg"
’設置定時器在 17:00:00 激活,激活后運行 Show_my_msg 。
End Sub

Sub Show_my_msg()
    msg = MsgBox("現在是 17:00:00 !", vbInformation, "自定義信息")
End Sub

2.模仿 Excel 97 里的 "自動保存宏",在這里定時 5 秒出現一次
Sub auto_open()
    MsgBox "歡迎你,在這篇文檔里,每 5 秒出現一次保存的提示!", vbInformation, "請注意!"
    Call runtimer ’打開文檔時自動運行
End Sub

Sub runtimer()
    Application.OnTime Now + TimeValue("00:00:05"), "saveit"
’ Now + TimeValue("00:15:00") 指定在當前時間過 5 秒鐘開始運行 Saveit 這個過程。
End Sub

Sub SaveIt()
    msg = MsgBox("朋友,你已經工作很久了,現在就存盤嗎?" & Chr(13) _
       & "選擇是:立刻存盤" & Chr(13) _
       & "選擇否:暫不存盤" & Chr(13) _
       & "選擇取消:不再出現這個提示", vbYesNoCancel + 64, "休息一會吧!")
’提示用戶保存當前活動文檔。
    If msg = vbYes Then ActiveWorkbook.Save Else If msg = vbCancel Then Exit Sub
    Call runtimer ’如果用戶沒有選擇取消就再次調用 Runtimer
End Sub

以上只是兩個簡單的例子,有興趣的話,可以利用 Application.Ontime 這個函數寫出更多更有用的定時程序。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97