Applies ToMicrosoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

附註: 如果 Microsoft Jet Expression Service 在沙箱模式中執行,會停用本主題中所述的函數、方法、物件或屬性,以免評估可能不安全的表達式。 如需沙盒模式的詳細資訊,請在 [說明] 中搜尋「沙盒模式」。

產生執行的結果,讓操作系統可以處理其他事件。

語法

DoEvents ( )

註解

DoEvents 函數會傳回一個整數,代表獨立版本的 Microsoft Visual Basic 中開啟的窗體數目,例如 Visual Basic、Professional Edition。 DoEvents 會 在所有其他應用程式中傳回零。

DoEvents 會將控制權傳遞至操作系統。 在操作系統完成處理其佇列中的事件,且已傳送 SendKeys 佇列中的所有按鍵之後,就會傳回控件。

DoEvents 最適合用於簡單的專案,例如允許使用者在程式開始之後取消程式,例如搜尋檔案。 對於長時間執行的程式,使用定時器或將任務委派給 ActiveX EXE 元件,更能讓處理器產生收益。 在後者的情況下,工作可以完全獨立於您的應用程式繼續,而操作系統會處理多任務和時間切片。

每當您在事件過程中暫時向處理器收益時,在第一次回電之前,請確定系統不會從代碼的不同部分再次執行 程序 ;這可能會造成無法預期的結果。 此外,如果其他應用程式可能在您獲得控制權期間,以不可預料的方式與您的程序互動,請勿使用 DoEvents

範例

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

此範例使用 DoEvents 函數,每 1000 次迴圈反覆運算一次,讓執行結果產生操作系統收益。 DoEvents 會 傳回開啟的 Visual Basic 窗體數目,但只有在主機應用程式為 Visual Basic 時才會傳回。

' Create a variable to hold number of ' Visual Basic forms loaded and visible.Dim I, OpenFormsFor I = 1 To 150000    ' Start loop.    If I Mod 1000 = 0 Then  ' If loop has repeated                            ' 1000 times.        OpenForms = DoEvents  ' Yield to operating system.    End IfNext I    ' Increment loop counter.

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。