在Excel VBA中如何让For Next隔1秒然后再Next?

来源:百度知道 编辑:UC知道 时间:2024/05/05 02:44:55
_
我用vba帮助里面找到wait的帮助:
If Application.Wait(Now + TimeValue("0:00:10")) Then
MsgBox "Time expired"
End If
这个就可以。
不过还是非常感谢狮儿、hongweizhu和supperST!

方法一:
Private Declare Function GetTickCount Lib "kernel32" () As Long

Sub main()
For i = 1 To 3
Debug.Print GetTickCount - t

'加入下列四行即可.
t = GetTickCount
Do
If GetTickCount - t > 1000 Then Exit Do
DoEvents
Loop
Next

End Sub

这样就可以了. 缺点是会大量占用CPU资源. 几乎占完了.

方法二:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub main()
For i = 1 To 3
Debug.Print GetTickCount - t

Sleep 1000
Next
DoEvents
End Sub

这个不占用CPU资源, 缺点是... 延时的时候Excel会完全不响应, 睡着了一般.

都不尽如人意哈. 但是也只能如此的了.

sleep最方便了!
sleep怎么用?
先把这句加在模块最顶部
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

然后在代码中
sleep 1000
'即代表1秒的延时
sleep 2500
'即代表2.