VBA代码大全022:如何让vba程序暂停运行几秒再继续?

在一些场景,特别是涉及到复制、粘贴的操作或者是跨软件操作时,由于一些操作需要一定的时间,如果程序直接运行有可能上一步的操作还没完成就运行到下一步了,这样就会导致程序出错。

再比如,对于网站的爬取,如果爬取的频率过快,有可能被服务器发现从而禁止爬取或弹出验证码,这些都需要让代码暂停运行几秒后再继续运行。

这里介绍两种让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只是规定暂停多少毫秒。

       

发表评论