了解Office的VBA编程的网友可能会遇到DoEvents这样的语句。当然,包括我在内,都会对DoEvents语句提出疑问,这DoEvents到底是啥意思呢?
下面,我们来一起认识DoEvents的含义吧。
DoEvents 函数功能:转让控制权,以便让操作系统处理其它的事件。
DoEvents 函数会返回一个 Integer,DoEvents 返回 0。
DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。
说得简单一点,DoEvents把控制权转交给操作系统,让word,excel,powerpoint能够处理其它的操作。否则,屏幕将处于黑屏状态而不能进行相应的日常化操作。
①示例代码一
Sub MyStart()
If Worksheets("sheet3").Cells(1, 1) = "Start" Then Exit Sub
Worksheets("sheet3").Cells(1, 1) = "Start"
Do While Worksheets("sheet3").Cells(1, 1) <> "end"
Worksheets("Sheet2").Cells(4, 2) = Int(Rnd(99999) * 100000)
DoEvents
DoEvents
DoEvents
Loop
End Sub
②示例代码二
Do While Time < #11:59:00 PM#
DoEvents
If (MyCommand) Then
Sleep 1000
ActivePresentation.SlideMaster.HeadersFooters.Footer.Text = Format(Time, "hh:nn:ss")
Else
Exit Do
End If
VBA.DoEvents
Loop