Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

附註: 如果 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, OpenForms
For 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 If
Next I ' Increment loop counter.

Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×