大家好,今天我们继续讲解VBA代码解决方案第82讲的内容:如何使用代码来延迟程序,并对SLEEP函数和函数这两个API函数进行讲解。
上一讲我们讲到了使用Wait方法,但是这种方法的缺点是只能提供精度为1秒的延迟。 如果需要精度较低的延迟,则需要使用Sleep API函数,如下面的代码所示。
子睡眠库“”(ByVal 只要)
子()
调暗测试为
暗淡如
sTest = "欢迎来到本平台学习VBA!"
对于 i = 1 至 Len(sTest)
范围(“A1”).Value = Left(sTest,i)
睡眠 200
下一个
结束子
代码分析:
该过程模拟在单元格 A1 中输入一行文本的打字效果。 “欢迎来到这个平台学习VBA!”
第一行代码声明了Sleep API函数,参数是时间长度(以毫秒为单位)。
第6行到第9行,代码每次循环都会增加显示的数据,并在每次增加时使用Sleep语句延迟200毫秒,就好像一个字符一个一个地输入一样,从而达到模拟打字的效果。
上例中,对于用于精确延迟的sleep函数,请注意,在使用该函数时,由于该函数是API函数,所以必须在使用前声明,然后再使用。 sleep函数延迟虽然是毫秒级的,精度比较高,但是它会在延迟期间暂停程序,使操作系统暂时无法响应用户操作,所以不适合在长时间延迟时使用。
更好的方法是使用函数。 该函数返回从启动到现在的毫秒数。 可以支持1毫秒的间隔,并且会一直增加。 回去是没有问题的。 当然,这并不意味着您永远不会回头。 毕竟Long类型变量(双字,4个字节)也是有取值范围的,取值范围在0到2^32之间。 大约49.71天。
与sleep函数一样,该函数是一个API函数,使用前必须声明,即:
Lib“winmm.dll”()只要
延迟函数与上面相同,只是将睡眠函数替换为:
Lib“winmm.dll”()只要
子()
调暗时间1只要
时间1 =
范围(“A2”).值=
做
范围(“A3”).值=
循环 While - 时间 1 < 1000
“时间到!”
结束子
注:延迟时间的单位是毫秒。 由于延时功能是使用语句来交接系统控制权,因此不会影响用户的其他操作。
代码截图:
跑步:
今日内容回顾:
1 如何实现程序延时?
2 本节讲两种延迟方法。 你到底懂不懂呢?