【发布时间】:2018-03-20 16:09:52
【问题描述】:
在尝试从宏中访问外部 API 函数集时,我发现有必要添加延迟,以便外部 API 有时间处理选择。
实现这一点会带来一些困难,因为使用 Application.Wait 或 Application.Sleep 不起作用。
在线搜索导致我尝试使用 GetTickCount 或 timeGetTime - 由于延迟功能无法退出,这两种方法都对我不起作用。
因此问题是我该如何实现呢?
【问题讨论】:
在尝试从宏中访问外部 API 函数集时,我发现有必要添加延迟,以便外部 API 有时间处理选择。
实现这一点会带来一些困难,因为使用 Application.Wait 或 Application.Sleep 不起作用。
在线搜索导致我尝试使用 GetTickCount 或 timeGetTime - 由于延迟功能无法退出,这两种方法都对我不起作用。
因此问题是我该如何实现呢?
【问题讨论】:
相反,我使用 Now 和 DateAdd 函数实现了延迟:
Function Delay(Seconds As Long)
Dim StopTime As Date: StopTime = DateAdd("s", Seconds, Now)
Do While Now < StopTime
DoEvents
Loop
End Function
在下面更新了毫秒精度
Function Delay(Seconds As Double)
Dim StopTime As Double: StopTime = Timer + Seconds
Do While Timer < StopTime
DoEvents
Loop
End Function
【讨论】: