使用 VBA 在程式碼執行期間新增延遲
Glen Alfaro
2023年1月30日
2022年5月18日
在使用 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