作者:绿色风
分类:
时间:2022-08-17
浏览:155
楼主 水星钓鱼 |
Q:如何利用VBA每天提示自己在12点下班吃饭前不要忘了关灯? A:可以在一个工作簿的Open事件中使用Application.OnTime方法来实现这一个目的。步骤如下: Alt+F11→Thisworkbook→代码窗口中输入如下的代码:- Private Sub Workbook_Open()
- Application.OnTime "11:58:00", "AlertInfo"
- End Sub
- Sub AlertInfo()
- MsgBox "吃饭了,请不要忘了关灯"
- End Sub
因为工作簿如果中途关掉的话,代码将失效。所以可以利用工作簿的BeforeClose事件来设置,在下午下班之前都不允许将工作簿关闭 在代码窗口中添加入下代码:- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- '如果时间未临近下午5点(即下班时间),则不允许关闭工作簿
- If Time < #4:58:00 PM# Then
- Cancel = True
- Else
- Cancel = False
- End If
- End Sub
为了达到全程的自动化,建议将代码放到每天都要使用的工作簿中,或者个人宏工作簿。前期处理还可以将工作簿放入到开始菜单→所有程序→启动文件夹中,使电脑开机后自动打开该工作簿。或者利用计划任务在某一时间打开该工作簿。 |
2楼 wise |
Q:如何利用VBA设计时钟? A:ALT +F11→插入模块→在模块中输入以下代码:
- Sub Tim()
- Range("D3") = WorksheetFunction.Text(Now(), "hh:mm:ss")
- Application.OnTime Now + TimeValue("00:00:01"), "Tim"
- End Sub
- Sub OnEnd()
- Application.OnTime Now + TimeValue("00:00:01"), "Tim", , False
- 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过程
- Sub 定时运行()
- Application.OnTime TimeValue("12:00:00"), "Test"
- End Sub
或者利用以下语句,过两秒钟后运行Test过程
- Sub 延时运行()
- Application.OnTime Now + TimeValue("00:00:02"), "Test"
- End Sub
定时运行.rar |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一