我在工作表中编写了一系列宏,它们按顺序工作,通过api下载数据,然后分析和格式化数据。
我的目标是将六个命令按钮组合成一个。但是当我这样做的时候,虽然我只是从一个子片复制并粘贴到另一个子片中,但结果却不同。
我的猜测是,后面的命令(依赖于前面步骤的完成)不等待先前的命令完成,特别是对于要下载的数据。
对于那些对VBA更有经验的人来说,这是否有意义,或者vba代码是否始终按顺序和耐心地评估?
是否有命令在执行不同代码段之间添加时间跨度?
不需要代码帮助,只需要命令指南(如果存在)。
感谢。
答案 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