我有运行特定代码的VBA代码,我试图通过使用以下行给它等待3秒来暂停下一次执行:
Application.Wait (Now + TimeValue("00:00:03"))
但是我收到以下错误:
错误:找不到方法或数据变量
在开发代码时最好使用外部库引用(Early Binding)。早期绑定具有智能感知和帮助文档的优点。 Early Binding的一个主要缺点是,如果安装了不同版本的库,则需要更新引用。这是最好在分发之前删除外部引用并将代码转换为Late Binding。
后期绑定使用CreateObject
导入和实例化一个类对象。
CreateObject("Excel.Application").Wait (Now + TimeValue("00:00:05"))
或者,您可以参考WinApi Sleep
函数。
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
用法:
Sleep 3000 '3000 Milliseconds = 3 second delay
我尝试了Excel.Application.Wait(Now + TimeValue("00:00:03"))
,它就像一个魅力!
这对我有用:
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 0
Dim errorCode As Integer
errorCode = wsh.Run("timeout 5", windowStyle, waitOnReturn)
此代码允许运行cmd命令并等待执行完成,在这种特殊情况下,我正在运行命令“timeout 5”,它等待5秒钟。我找到了文件here