VBA - 在继续执行下一个Sub之前等待一段时间

vba*_*ner 3 excel vba excel-vba

所以我有一个Sub将运行另外两个宏,但我需要它运行第一个,然后等待1分钟,然后运行第二个

我在网上看过并收集了这个:

Sub MainExecute
stdB18
Application.Wait(Now + TimeValue(0:01:00"))
runB18
End Sub
Run Code Online (Sandbox Code Playgroud)

问题是,当我这样做时,它似乎不会等到stdB18运行之后,而是在运行任何东西之前等待1分钟.

我也尝试将wait内部runB18放在顶部,但这使得整个应用程序在运行之前也会等待.有什么方法可以让我这样做,我可以跑stdB18,然后等一分钟,然后跑runB18

谢谢!

编辑:我需要等待的原因是因为我需要等待我的QueryTable(刷新)stdB18加载,然后执行runB18我所拥有的循环将从表中提取数据.

Sub*_*eer 6

通常使用.Refresh来运行查询.只需将BackgroundQuery:= False添加到它,以便代码将等到刷新查询表并且您不需要使用Application.Wait,因为您不知道查询将花费多长时间来完成.

所以试试......

.Refresh BackgroundQuery:=False
Run Code Online (Sandbox Code Playgroud)


M--*_*M-- 5

你需要 Application.OnTime

Sub MainExecute

  Application.OnTime Now() + TimeValue("0:01:00"), "runB18"
  stdB18

End Sub
Run Code Online (Sandbox Code Playgroud)