Excel 应用程序。等待消息

Excel 应用程序。等待消息,excel,vba,ms-word,Excel,Vba,Ms Word,我想休息一下,在去下一个I之前,它会随机等待5-10分钟 不幸的是,Application.Wait函数在Word中不起作用 你还有别的解决办法吗? 我对宏知之甚少 - 错误为:编译期间出错: 不允许将常量、固定长度的字符串、用户定义的数据字段和Declare语句作为对象模块的公共元素 Public声明PtrSafe子睡眠库“kernel32”(ByVal dwr作为LongPtr) 子测试_DE() 如果MsgBox(“Wirklich senden?”,vbYesNo,“senden”)v

我想休息一下,在去下一个I之前,它会随机等待5-10分钟

不幸的是,
Application.Wait
函数在Word中不起作用

你还有别的解决办法吗? 我对宏知之甚少

- 错误为:编译期间出错:

不允许将常量、固定长度的字符串、用户定义的数据字段和Declare语句作为对象模块的公共元素


Public声明PtrSafe子睡眠库“kernel32”(ByVal dwr作为LongPtr)
子测试_DE()
如果MsgBox(“Wirklich senden?”,vbYesNo,“senden”)vbYes,则退出Sub
Application.ScreenUpdating=False
我想我会坚持多久
使用ActiveDocument
对于i=1到.MailMerge.DataSource.RecordCount
使用.MailMerge
.Destination=wdSendToEmail
.MailSubject=“xxxx”
.MailFormat=wdMailFormatHTML
.MailAddressFieldName=“电子邮件”
.suppress blanklines=True
使用.DataSource
.FirstRecord=i
.LastRecord=i
.ActiveRecord=i
以
.执行暂停:=False
以
延迟=整数((600000-300000+1)*Rnd+300)
睡眠(延迟)
'CreateObject(“Excel.Application”).Wait(现在+时间值(“00:00:Delay”))
”他停了下来,躺了很久
“PauseDelay=Int((600-300+1)*Rnd+300)”存储300-480之间的随机间隔
“呼叫暂停(PauseDelay)”呼叫以随机间隔暂停
接下来我
以
Application.ScreenUpdating=True
端接头

如果您在Windows上工作

打开一个normal模块(在VBE中按Alt+I,M),然后将下面的代码放在开头

#If VBA7 And Win64 Then
    ' For 64bit version of Excel
    Public Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As LongPtr)
#Else
    ' For 32bit version of Excel
    Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
#End If

然后你可以使用
sleep 1000
等待一秒钟。

(参见TinMan的答案)。我如何将我的随机数放入他的代码中?`?CreateObject(“Excel.Application”)。等待(现在+时间值(“00:00:05”))不要使用
Excel.Application
,使用
sleep
。完成。这个错误是从德语翻译过来的。请参阅最后一点(将
Public
更改为
Private
)。如编辑中所述,这是在对象模块中,因此
Public
应该是
Private
。您有其他解决方案吗?话是freezing@FabianBreuer你设定了多少秒?尝试按Ctrl+c或Ctrl+z组合键打断子对象。