使用EXCEL中的OnTime函数可以制作一个倒计时器。只要设置了时间,EXCEL就会以秒为单位倒计时,到了设置的时间就停止并提示。
图1显示了倒计时定时器。当然,你也可以把它做成你喜欢的其他风格。
只要在C2单元格中输入“小时:分钟:秒”格式的时间,并按下右边的“开始”按钮,就可以开始倒计时,计时器超时后的时间将显示在C3单元格中,剩余时间将动态显示在C4单元格中。
下面介绍生产过程。
第一步:按照上面显示的样式在EXCEL窗口中制作一个界面,设置自己喜欢的字体大小和颜色边框。因为计时部分由VBA码组成,所以不需要在表中输入任何公式。
第二步:按ALT F11调出VBA窗口,按“Insert-Module”打开一个空白的模块窗口,将下面的代码粘贴进去。
记住下一个任务的执行时间:马頔' start time Dimb ' end time Sub timing()n=Now time value(' 00:00:01 ')'设置时间间隔为一秒:IfNow()bThenMsgBox '倒计时结束'Call stop:exits Sub[C4]=format(b-Now(),H:mm:ss ')'设置单元格格式应用。on Time,' Time ' '然后在指定时间后执行此流程。EndSubSub starts()[C2]=Format([C2],' h:mm:ss ')'设置单元格格式a=[c2]'设置时间b=Now() a '进行计算。Yyyy-m-dh:mm:ss ')'设置单元格格式调用Timed end sub Stop()oneerrorresumextapplication。Ontimen,' Timed 'False '停止执行任务End Sub。
这组代码由四部分组成:第一部分(最上面的三行)是一个公共变量,这样就可以在下面的过程中调用这些变量。第二部分是“子计时”,也是主要代码。它负责不间断计时和显示剩余时间。第三部分"短接启动"、
相当于初始化部分,设置单元格格式,显示“定时结束时间”。在这一部分中,将调用“子计时”过程进行倒计时。第四部分“子停止”终止倒计时过程。代码的关键部分是“亚计时”。
它利用onTime功能实现自动计时功能。常见语法:应用程序。OnTime,在上面的例子中要运行的进程的名称,“application.ontime,‘timing’”的意思是“n”,直到下一次。
名为“计时”的代码(即“子计时”本身)执行一次。时间“n”是通过语句“n=现在时间值(' 00:00:01 ')”计算出来的,这意味着当前时间(即“现在”)加上1秒的时间值。
在“Sub stop”的过程中,也使用了OnTime函数,但是它多了一个参数False,用来在时间“n”(即计时结束)之后停止执行进程“Sub timing”。其他句子比较好理解,请参考每句话后面的注释。
第三步:添加按钮为了方便执行,需要在EXCEL窗口中添加两个按钮,一个是开始,一个是结束。在EXCEL窗口中按“视图-工具栏-表格”,调出“表格”工具栏。
用鼠标选中上面的按钮控件,在c列右侧画两个大小合适的按钮,然后用鼠标右键单击按钮,选择编辑文本。第一个按钮输入“开始”,第二个按钮输入“停止”。
接下来,您需要指定为按钮运行的宏(即VBA窗口中的代码)。右键单击开始按钮,选择指定宏,然后在弹出窗口中单击开始进行确认。以同样的方式为停止按钮指定一个停止宏。
这样就完成了整个制作过程,可以使用了。在C2单元格中输入一个时间(格式为“小时:分钟:秒”),点击“开始”可以看到C3单元格中计时器结束的时间,同时C4单元格中出现以一秒为间隔递减的时间数字。
当C4单元显示为0时,弹出提示窗口,计时结束。