上一节我们学习了用Excel来实现计电子时钟的效果
虽然看起来很不错,但是很多的小伙伴就觉得有点不实用
日常工作中,计时器用处不大,倒计时反而用处更多一些,那么我们今天就来实现倒计时的功能
来看看案例
这是我们最终要实现的效果,试试很多花样呢
其实代码也没有什么难度,基本上还是延续上节我们学过的application.ontime方法
代码区
OptionExplicit
PrivatemdteTimeAsDate
PrivateConstsdateAsDate=#10/1/#
PrivateConststimeAsDate=#12:00:00AM#
Subks()
Calljs
EndSub
Subjs()
DimintNumAsInteger
DimdteNowTimeAsDate,dteTimeAsDate
dteNowTime=Now()
IfdteNowTime=sdate+stimeThen
ActiveSheet.Range(B10:B11).Value=0
MsgBox时间到!,vbExclamation
ExitSub
EndIf
IfTimeValue(dteNowTime)sdate+stimeThenintNum=1
WithActiveSheet
.Range(B10).Value=sdate-Date-intNum
dteTime=stime-TimeValue(dteNowTime)+_
intNum*
.Range(B11).Value=Hour(dteTime)
.Range(B12).Value=Minute(dteTime)
.Range(B13).Value=Second(dteTime)
EndWith
mdteTime=dteNowTime+TimeValue(0:0:1)
Application.OnTimemdteTime,js
EndSub
SubStops()
OnErrorResumeNext
Application.OnTimemdteTime,js,,False
EndSub
今天的代码稍微有点长,但是也算是即用类型,拿来即用的范畴了。
这里大家可能会比较陌生的就是
PrivateConstsdateAsDate=#10/1/#PrivateConststimeAsDate=#12:00:00AM#
这两段代码,是一个全局变量的意思,就是不管代码执行到哪里,这两个变量一直都是这样两个常量。
代码计算的核心部分在这里,主要是获取两个起始时间之间的差异的
然后借助时间函数hour等,就可以得到相差的小时分钟了。
主要还是我们上节学习的application.ontime方法的使用