在Visual Basic Word中没有与应用程序关联的等待方法

问题描述 投票:0回答:3

我有运行特定代码的VBA代码,我试图通过使用以下行给它等待3秒来暂停下一次执行:

Application.Wait (Now + TimeValue("00:00:03"))

但是我收到以下错误:

错误:找不到方法或数据变量

vba word-vba
3个回答
2
投票

在开发代码时最好使用外部库引用(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

1
投票

我尝试了Excel.Application.Wait(Now + TimeValue("00:00:03")),它就像一个魅力!


0
投票

这对我有用:

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

© www.soinside.com 2019 - 2024. All rights reserved.