用过 Excel 97 里的加载宏 定时保存" 吗?可惜它的源程序是加密的,现在就上传一篇介绍实现它的文档。
在 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 SubSub Show_my_msg()msg = MsgBox("现在是 17:00:00 !", vbInformation, 自定义信息")End Sub2.模仿 Excel 97 里的 自动保存宏",在这里定时 5 秒出现一次
Sub auto_open()MsgBox 欢迎你,在这篇文档里,每 5 秒出现一次保存的提示!", vbInformation, 请注意!"Call runtimer '打开文档时自动运行End SubSub runtimer()Application.OnTime Now + TimeValue("00:00:05"), saveit"' Now + TimeValue("00:15:00") 指定在当前时间过 5 秒钟开始运行 Saveit 这个过程。End SubSub SaveIt()msg = MsgBox("朋友,你已经工作很久了,现在就存盘吗?" & Chr(13) _& 选择是:立刻存盘" & Chr(13) _& 选择否:暂不存盘" & Chr(13) _& 选择取消:不再出现这个提示", vbYesNoCancel + 64, 休息一会吧!")'提示用户保存当前活动文档。
If msg = vbYes Then ActiveWorkbook.Save Else If msg = vbCancel Then Exit SubCall runtimer '如果用户没有选择取消就再次调用 RuntimerEnd Sub以上只是两个简单的例子,有兴趣的话,可以利用 Application.Ontime 这个函数写出更多更有用的定时程序。