Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 19398|回复: 60

[分享] VBA教程之七:在EXCEL中使用定时器

[复制链接]
发表于 2006-9-8 13:37 | 显示全部楼层 |阅读模式

用过 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 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 这个函数写出更多更有用的定时程序。

发表于 2007-4-21 23:15 | 显示全部楼层
回复

使用道具 举报

发表于 2006-12-27 22:48 | 显示全部楼层
回复

使用道具 举报

发表于 2007-1-1 11:31 | 显示全部楼层

高深
回复

使用道具 举报

发表于 2007-1-11 21:39 | 显示全部楼层

先收藏好慢慢学
回复

使用道具 举报

发表于 2007-1-12 17:11 | 显示全部楼层

謝謝!已收藏
回复

使用道具 举报

发表于 2007-1-16 23:15 | 显示全部楼层

[em07]太感谢了[em17][em17][em17]
回复

使用道具 举报

发表于 2006-9-8 14:16 | 显示全部楼层

谢谢,学习之中。

回复

使用道具 举报

发表于 2006-9-8 14:39 | 显示全部楼层

谢谢哦!

回复

使用道具 举报

发表于 2006-9-18 09:55 | 显示全部楼层

太感谢了,一定要好好学习[em01]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-4 22:16 , Processed in 0.287902 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表