Lag*_*ter 17 vba timedelay timer wait pause
我想在我的代码中延迟1秒钟.下面是我试图延迟的代码.我认为它会轮询操作系统的日期和时间,并等到时间匹配.我有延迟的问题.我认为它不会轮询与等待时间匹配的时间,它只是坐在那里并冻结.它只会冻结我运行代码的大约5%的时间.我想知道Application.Wait以及是否有办法检查轮询时间是否大于等待时间.
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Run Code Online (Sandbox Code Playgroud)
The*_*ler 36
如果您使用的是Excel VBA,则可以使用以下内容.
Application.Wait(Now + TimeValue("0:00:01"))
Run Code Online (Sandbox Code Playgroud)
(时间字符串应该看起来像H:MM:SS.)
Ste*_*ory 24
我将这个小功能用于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
Run Code Online (Sandbox Code Playgroud)
Fin*_*ist 12
您可以在模块中复制它:
Sub WaitFor(NumOfSeconds As Long)
Dim SngSec as Long
SngSec=Timer + NumOfSeconds
Do while timer < sngsec
DoEvents
Loop
End sub
Run Code Online (Sandbox Code Playgroud)
每当你想应用暂停写:
Call WaitFor(1)
Run Code Online (Sandbox Code Playgroud)
我希望有所帮助!
你试过睡觉吗?
这里有一个例子HERE(下面复制):
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Activate()
frmSplash.Show
DoEvents
Sleep 1000
Unload Me
frmProfiles.Show
End Sub
Run Code Online (Sandbox Code Playgroud)
请注意,它可能会冻结应用程序所选的时间.
小智 5
只要项目包含 Microsoft Excel XX.X 对象引用,Access 就始终可以使用 Excel 过程:
Call Excel.Application.Wait(DateAdd("s",10,Now()))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
195914 次 |
| 最近记录: |