ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何编写一个任务提醒?

如何编写一个任务提醒?

作者:绿色风 分类: 时间:2022-08-17 浏览:105
楼主
水星钓鱼
Q:如何利用VBA每天提示自己在12点下班吃饭前不要忘了关灯?
A:可以在一个工作簿的Open事件中使用Application.OnTime方法来实现这一个目的。步骤如下:
Alt+F11→Thisworkbook→代码窗口中输入如下的代码:
  1. Private Sub Workbook_Open()
  2.     Application.OnTime "11:58:00", "AlertInfo"
  3. End Sub
  1. Sub AlertInfo()
  2.     MsgBox "吃饭了,请不要忘了关灯"
  3. End Sub
因为工作簿如果中途关掉的话,代码将失效。所以可以利用工作簿的BeforeClose事件来设置,在下午下班之前都不允许将工作簿关闭
在代码窗口中添加入下代码:
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     '如果时间未临近下午5点(即下班时间),则不允许关闭工作簿
  3.     If Time < #4:58:00 PM# Then
  4.         Cancel = True
  5.     Else
  6.         Cancel = False
  7.     End If
  8. End Sub
为了达到全程的自动化,建议将代码放到每天都要使用的工作簿中,或者个人宏工作簿。前期处理还可以将工作簿放入到开始菜单→所有程序→启动文件夹中,使电脑开机后自动打开该工作簿。或者利用计划任务在某一时间打开该工作簿。
2楼
wise
Q:如何利用VBA设计时钟?
A:ALT +F11→插入模块→在模块中输入以下代码:
  1. Sub Tim()
  2. Range("D3") = WorksheetFunction.Text(Now(), "hh:mm:ss")
  3. Application.OnTime Now + TimeValue("00:00:01"), "Tim"
  4. End Sub
  5. Sub OnEnd()
  6. Application.OnTime Now + TimeValue("00:00:01"), "Tim", , False
  7. End Sub

关键是以下这段代码:
使用 Now + TimeValue(time) 可安排经过一段时间(从现在开始计时)之后运行某个过程。使用 TimeValue(time) 可安排某个过程只运行指定的时间。


如何用VBA设计时钟.rar
3楼
century_zhang
看完此贴有所思...
我看过一些其他文章,提到“当使用OnTime方法安排在将来的某个时间运行宏时,必须确保Excel一直在内存中运行直至到达安排的时间。但不需要一直打开包含OnTime宏的工作簿。”是说,因为调用的是application.ontime, 而application是excel的最高级对象,所以只要有任一个工作簿打开(Excel一直在内存中),就可以运行ontime。实际上我经过试验,不能实现,还必须打开包含OnTime宏的工作簿,才能运行。
不知大家是否有别的了理解?
4楼
amulee
Q:如何在指定时间运行过程?
A:可以利用以下语句,在指定时间(12点)运行Test过程
  1. Sub 定时运行()
  2.     Application.OnTime TimeValue("12:00:00"), "Test"
  3. End Sub

或者利用以下语句,过两秒钟后运行Test过程
  1. Sub 延时运行()
  2.     Application.OnTime Now + TimeValue("00:00:02"), "Test"
  3. End Sub


定时运行.rar

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap