作者:乔山办公网日期:
返回目录:excel表格制作
插入-模块里录入以下代码(以秒表百显示在A1单元格为例):
Sub 秒表()
ActiveSheet.Range("A1").Value = Time
Application.OnTime Time + TimeSerial(0, 0, 1), "秒表", , True
End Sub
保存文件后,执行菜单:工具度-宏-宏
在弹出的对话框中,选择“秒表”这个宏
点“执行按钮知”
要显示24小时制的话,设置一下单元格的时间格式就道好了
我只是搬运工,只为解决你一切问题
在 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 '如果用户没e79fa5e98193e4b893e5b19e333有选择取消就再次调用 Runtimer
End Sub
以上只是两个简单的例子,有兴趣的话,可以利用 Application.Ontime 这个函数写出更多更有用的定时程序。
操作步骤:
1、在Excel工作e799bee5baa6e79fa5e98193e4b893e5b19e334表里按Alt+F11,打开VBA编程界面
2、在VBA编程界面的工具栏,第二个按钮拉下来选模块
3、在左边栏的你需要计时器的那个工作表名字上双击,打开右边的程序书写区域
4、把下面的程序代码粘贴进去
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Cells.Count = 1 And (Not Intersect(Target.Cells(1), Range("B1")) Is Nothing) Then
[B1] = "开始时间"
[C1] = Format(Now(), "Hh:mm:Ss")
[D1] = Timer
[D1].Font.ColorIndex = 2
[B2:D3].ClearContents
End If
If Target.Cells.Count = 1 And (Not Intersect(Target.Cells(1), Range("B2")) Is Nothing) Then
[B2] = "结束时间"
[C2] = Format(Now(), "Hh:mm:Ss")
[D2] = Timer
[D2].Font.ColorIndex = 2
[B3] = "总共用时"
[C3] = Format([D2] - [D1], "#0.00")
[D3] = "秒"
End If
Target.Offset(1, 0).Select
End Sub
5、关闭VBA编程界面回到工作表
6、双击B1开始计时,双击B2终止计时,用时结果在C3单元格
(特别提醒:要在Exce中通过菜单“工具-宏-安全性”把宏的安全级别设为中或低以允许宏的运行,否则宏不能运行也得不到你要的结果)