在一些场景,特别是涉及到复制、粘贴的操作或者是跨软件操作时,由于一些操作需要一定的时间,如果程序直接运行有可能上一步的操作还没完成就运行到下一步了,这样就会导致程序出错。
再比如,对于网站的爬取,如果爬取的频率过快,有可能被服务器发现从而禁止爬取或弹出验证码,这些都需要让代码暂停运行几秒后再继续运行。
这里介绍两种让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只是规定暂停多少毫秒。
发表评论