【问题标题】:Delay macro to allow events to finish延迟宏以允许事件完成
【发布时间】:2018-03-20 16:09:52
【问题描述】:

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

实现这一点会带来一些困难,因为使用 Application.Wait 或 Application.Sleep 不起作用。

在线搜索导致我尝试使用 GetTickCount 或 timeGetTime - 由于延迟功能无法退出,这两种方法都对我不起作用。

因此问题是我该如何实现呢?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    相反,我使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多