在一些场景,特别是涉及到复制、粘贴的操作或者是跨软件操作时,由于一些操作需要一定的时间,如果程序直接运行有可能上一步的操作还没完成就运行到下一步了,这样就会导致程序出错。
再比如,对于网站的爬取,如果爬取的频率过快,有可能被服务器发现从而禁止爬取或弹出验证码,这些都需要让代码暂停运行几秒后再继续运行。
这里介绍两种让vba代码暂停运行的方法。
方法一 用Application对象的Wait方法让程序暂停运行,代码如下:
Sub 让vba暂停几秒()
Dim i
For i = 1 To 10000
'主程序
'********************
'每次暂停程序5秒再继续执行下一个for 循环
Application.Wait Now + TimeValue("0:00:05")
Next i
End Sub
方法二 用api函数Sleep暂停程序的运行,代码如下:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub 让vba暂停几秒()
Dim i
For i = 1 To 10000
'主程序
'
********************
'每次暂停程序500毫秒再继续执行下一个for 循环
Sleep 500
Next i
End Sub
两者的区别在于Application对象的Wait方法可以让程序暂停到具体的时间,而Sleep只是规定暂停多少毫秒。


发表评论