延迟宏以允许事件完成

时间:2018-03-20 16:09:53

标签: excel excel-vba vba

在尝试从宏中访问外部API函数集时,我发现有必要添加一个延迟,以便有时间让外部API处理选择。

使用Application.Wait或Application.Sleep无法实现这一点会带来一些困难。

在线搜索让我尝试使用GetTickCount或timeGetTime - 由于延迟功能无法退出,因此两者都无法正常工作。

问题是如何实现这个?

1 个答案:

答案 0 :(得分:0)

相反,我使用函数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 Single)
    Dim StopTime As Single: StopTime = Timer + Seconds
    Do While Timer < StopTime
        DoEvents
    Loop
End Function