我希望我的代码有1秒的延迟。下面是我试图延迟的代码。我认为它会轮询操作系统上的日期和时间,然后等待时间匹配。我对延迟有意见。我认为当它与等待时间匹配时,它不会轮询时间,它只是坐在那里并冻结。我运行代码时,它只冻结了大约5%的时间。我想知道Application.Wait是否有办法检查轮询时间是否大于等待时间。
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime发布于 2011-08-06 02:07:53
我将这个小函数用于VBA。
Public Function Pause(NumberOfSeconds As Variant)
On Error GoTo Error_GoTo
Dim PauseTime As Variant
Dim Start As Variant
Dim Elapsed As Variant
PauseTime = NumberOfSeconds
Start = Timer
Elapsed = 0
Do While Timer < Start + PauseTime
Elapsed = Elapsed + 1
If Timer = 0 Then
' Crossing midnight
PauseTime = PauseTime - Elapsed
Start = 0
Elapsed = 0
End If
DoEvents
Loop
Exit_GoTo:
On Error GoTo 0
Exit Function
Error_GoTo:
Debug.Print Err.Number, Err.Description, Erl
GoTo Exit_GoTo
End Function发布于 2011-09-26 09:00:43
如果您使用的是Excel VBA,则可以使用以下命令。
Application.Wait(Now + TimeValue("0:00:01"))(时间字符串应类似于H:MM:SS。)
发布于 2011-08-06 02:25:25
您可以在模块中复制以下代码:
Sub WaitFor(NumOfSeconds As Long)
Dim SngSec as Long
SngSec=Timer + NumOfSeconds
Do while timer < sngsec
DoEvents
Loop
End sub每当您想要应用暂停写入时:
Call WaitFor(1)我希望这对你有帮助!
https://stackoverflow.com/questions/6960434
复制相似问题