在macros中指定动作序列?

我已经在一个工作表中编写了一系列的macros,它们通过api下载数据,然后分析和格式化数据。

我的目标是将六个命令button组合成一个。 但是当我这样做了,虽然我只是从一个副本复制粘贴到另一个副本,结果是不同的。

我的猜测是后面的命令(依赖于前面步骤的完成)不等待先前的命令完成,特别是下载数据。

对于有VBA经验的人来说,这是否有意义?或者vba代码是否总是按顺序耐心地进行评估?

是否有一个命令添加执行不同代码段之间的时间跨度?

不要真的需要代码帮助,如果它存在,只是一个指令。

谢谢。

这对VBA经验更丰富的人是否有意义?或者vba代码是否总是按顺序耐心地进行评估?

依次…是的。 耐心地? 绝对是一个很大的NO 。 否则我们不必使用DoEvents 🙂

是否有一个命令添加执行不同代码段之间的时间跨度? 不要真的需要代码帮助,如果它存在,只是一个指令。

就像我上面提到的,你可以使用Doevents或者我使用的这个Wait Doevents

 Sub Sample() MsgBox "Hello" Wait 5 '<~~ Wait for 5 seconds MsgBox "World" End Sub Private Sub Wait(ByVal nSec As Long) nSec = nSec + Timer While nSec > Timer DoEvents Wend End Sub