DoEvents 函数

注意: 如果 Microsoft Jet Expression Service 在沙盒模式下运行,则禁用本主题中所述的函数、方法、对象或属性,这会阻止评估可能不安全的表达式。 有关沙盒模式的详细信息,请搜索"帮助"中的"沙盒模式"。

生成执行,以便操作系统可以处理其他事件。

语法

DoEvents ( )

备注

DoEvents函数返回一个整数,该整数表示独立版本的 Microsoft Visual Basic(如 Visual Basic 专业版)中的打开窗体数。 DoEvents 在所有其他应用程序中返回零。

DoEvents 将控制权传递给操作系统。 操作系统处理完其队列中的事件并发送 SendKeys 队列中的所有密钥后,将返回控件。

DoEvents 最适用于简单操作,例如允许用户在进程启动后取消进程,例如搜索文件。 对于长时间运行的进程,使用计时器或将任务委托给一个可执行 EXE 组件ActiveX处理器。 在后一种情况下,任务可以完全独立于应用程序继续运行,操作系统负责处理多任务和时间切片。

在事件过程中临时生成处理器时,请确保 过程 调用返回之前,不会从代码的不同部分再次执行该调用;这可能会导致不可预知的结果。 此外,如果其他应用程序在获得控制权期间可能以不可预见的方式与过程交互,请不要使用DoEvents。

示例

注意: 以下示例演示了在 VBA Visual Basic for Applications (模块) 函数。 有关使用 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.

需要更多帮助?

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

×