VBA经典代码 拿来即用 1.6 用Excel实现计时钟的效果

Excel在我们的日常工作中,最多是用来存储数据,处理数据,但是你知道Excel还可以用来做时钟吗?

当然,我们的这个时钟只能算是电子时钟,不过也是非常实用的

来看看如何实现的吧。

1.首先我们先找一个单元格,设置相关一下格式

2.为了展示的效果,也可以再继续设置一下单元格的样式,当然你也可以不设置,这里纯粹为了展示的效果而已

简单设置下这两个既可以了。

3.输入VBA代码

Dim dates As DateSub ks()    dates = Now() + TimeValue('00:00:01')    Application.OnTime dates, 'timessss'End SubSub timessss()      Range('A1') = Format(Time(), 'h:mm:ss')      Call ksEnd SubSub KillTimer()    Application.OnTime dates, 'timessss', Schedule:=FalseEnd Sub

注意,这里会有三段代码

看看效果如何

从GIF中我们可以看到,我们成功地实现了在工作表的A1单元格展示了当前的时间,同时也可以根据需要在我们需要的时候,结束这个计时,甚至可以算是一个简易的计时器

代码解析

其实这里的代码很简单,纯粹是借用了VBA的application.ontime方法。

这是VBA中常用的时间方法,主要作用是到指定时间去做指定的事情

注意:

这里的这个事情,一定要另外写一个sub

一个开始计时,一个结束计时,为什么这里会有三个sub ,三个程序呢?

我们来看下。

计时按钮其实指向的是timesss这个模块,在程序开始的时候,现在A1单元格写入当前的时间,这里借用了format函数,限制了展示的模式

然后就来到

call ks

这句话是什么意思呢?

call是呼叫的意思,这里延伸一下,就是跳转去执行另外一个模块,ks

注意三者的顺序。

然后就来到了这个ks模块了。

我们知道他借用了application.ontime方法,

可能大家忘记 application.ontime的方法了,application.ontime+时间+执行的事件

那么我们要时间,就是dates

dates = Now() + TimeValue('00:00:01')

当前时间+1s,就是每隔1s的意思,每隔一秒去干什么呢?

就是后面的这个事件了,timessss

又回到了timessss,将A1的内容改写为当前的时间。

就是我们看到的A1的时间不断递增的效果了。

就是这么一个不断循环的过程,可以理解为这是一个死循环,跳不出来的

那么如何结束这个循环呢?

Application.OnTime dates, 'timessss', Schedule:=False

就是他

Schedule是关键字,当他等于false的时候,代表一个程序的终止和结束。

(0)

相关推荐