在宏中指定操作顺序?

时间:2013-11-26 20:53:06

标签: excel vba excel-vba timing

我在工作表中编写了一系列宏,它们按顺序工作,通过api下载数据,然后分析和格式化数据。

我的目标是将六个命令按钮组合成一个。但是当我这样做的时候,虽然我只是从一个子片复制并粘贴到另一个子片中,但结果却不同。

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

对于那些对VBA更有经验的人来说,这是否有意义,或者vba代码是否始终按顺序和耐心地评估?

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

不需要代码帮助,只需要命令指南(如果存在)。

感谢。

1 个答案:

答案 0 :(得分:1)

  

对于那些对VBA更有经验的人来说,这是否有意义,或者vba代码是否始终按顺序和耐心地评估?

顺序......是的。耐心地?绝对是一个很大的NO。否则我们不必使用DoEvents:)

  

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

就像我上面提到的,您可以使用Doevents或我使用的Wait功能。

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