在VBA程序中,利用API函数来实现程序中毫秒级的延迟。

 2024-02-19 01:02:11  阅读 0

大家好,今天我们继续讲解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

“时间到!”

结束子

注:延迟时间的单位是毫秒。 由于延时功能是使用语句来交接系统控制权,因此不会影响用户的其他操作。

代码截图:

循环编写延时程序_for循坏实现延时函数_for循环延时计算

循环编写延时程序_for循坏实现延时函数_for循环延时计算

跑步:

循环编写延时程序_for循环延时计算_for循坏实现延时函数

今日内容回顾:

1 如何实现程序延时?

2 本节讲两种延迟方法。 你到底懂不懂呢?

标签: vba 毫秒 api

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码