关于EXCEL VBA 延时程序

来源:百度知道 编辑:UC知道 时间:2024/05/28 11:03:11
我想做一个延时程序 每过几秒调用一次数据(一个测试过程)
因为我是一个新手,所以停留在网上找程序来改的阶段
现在有一个SLEEP程序可以用,但是每次调用都会发出“当”的报错音,我不知道这样是否正常?
还有有人跟我说Sleep函数不是很好,会有很多副作用什么的 用time比较好,是不是有这种说法?
还有就是那位高手有相关的延时程序可以提供以下么?万分感谢
PS.我只是初级阶段 希望大家回答的时候能够尽量清楚一点,谢谢

sub delay(T as single)
dim T1 as single
t1=timer
do
doevents
loop while timer-t1<t
end sub

调用时,使用 delay 3 即可延时3秒

除了用timer函数外,还可以使用gettickcount函数,不过使用它之前要声明它,过程与上面的过程差不多,只是参数便是毫秒作为单位了

SLEEP函数延时是毫秒级的,精确度比较高,但它在延时时会占用很多系统时间,使操作系统暂时无法响应用户操作,所以在长延时的时候不适合使用它

这段代码在Excel VBA 和VB里都可以用

'***********VB 延时函数定义*************************************
'声明
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
'延时
Public Sub Delay(ByVal num As Integer)
Dim t As Long
t = timeGetTime
Do Until timeGetTime - t >= num * 1000
DoEvents
Loop
End Sub
'***************************************************************

使用方法:
delay 3'3表示秒数

用控件TIMER,触发TIMER的事件