使用 VBA 在程式碼執行期間新增延遲

Glen Alfaro 2023年1月30日 2022年5月18日
  1. 在 VBA 中使用 wait 命令新增延遲時間的示例
  2. 使用 wait 命令實現自動更新方案
使用 VBA 在程式碼執行期間新增延遲

在使用 VBA 處理複雜的計算和過程時,程式設計師應該記住,有些演算法過於繁重,需要一些時間來處理。噹噹前程序仍在執行時會出現問題,但隨後 VBA 編譯器會繼續執行下一個程序。在這種情況下,會發生溢位和錯誤。

延遲的典型應用是在處理網路抓取工具時。在抓取資料之前,應先完全載入網站。否則會出現錯誤。另一個應用是當我們需要在定義的時間範圍內定期執行巨集時。

本文將演示如何使用 wait 命令新增延遲時間。

語法:

Application.Wait(Now + [delay time])

其中,

[延遲時間] 指定所需的延遲時間。

在 VBA 中使用 wait 命令新增延遲時間的示例

Sub DelayMe()
'Print the current time
Debug.Print Now

'Delay for 10 seconds start here
Application.Wait(Now + TimeValue("00:00:10"))

'Print the current time
Debug.Print Now

End Sub

輸出:

12/21/2021 4:41:25 PM 
12/21/2021 4:41:35 PM 

使用 wait 命令實現自動更新方案

下面的程式碼塊將演示使用 wait 命令實現自動更新方案。它將每 10 秒呼叫一次 GetTimeNow 子程式。

Sub AutoUpdate()

'Main loop where the code execution takes place 
Do

'Add a delay for every call
Application.Wait(Now + TimeValue("00:00:10"))
'Calls the GetTimeNow subroutine
Call GetTimeNow
Loop

End Sub

Sub GetTimeNow

'Print the time at the time of the call.
Debug.Print "The current time is: " & Now

End Sub

輸出:

The current time is: 12/21/2021 4:59:30 PM
The current time is: 12/21/2021 4:59:48 PM
The current time is: 12/21/2021 5:00:01 PM
The current time is: 12/21/2021 5:00:16 PM