关于EXCEL VBA 延时程序

2024-11-15 07:20:05
推荐回答(4个)
回答1:

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

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

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

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

回答2:

Application.Wait Now + TimeValue("00:00:01")
程序延迟1秒.最低延迟1秒(无法减为半秒)
某些公式计算结果比较,不用延迟就会出错.我写的一段代码需要判断几个重复值,如果是重复的就刷新一次随机产生别的值,但是不开延迟,就无法正确判断.

回答3:

这段代码在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表示秒数

回答4:

用控件TIMER,触发TIMER的事件