我有一個VBA代碼,用於從電子表格中複製和粘貼來自外部服務器的數據。因此,該電子表格需要一段時間(從10到30秒)才能加載數據。在不暫停電子表格的情況下暫停VBA代碼
我研究瞭如何暫停宏 - application.wait,sleep等 - 但它們也會暫停電子表格函數,以使外部服務器的數據無法加載。因此,當代碼複製數據時,它將粘貼#DIV/0
!。是否有一個函數可以中斷/停止/暫停宏以給服務器數據加載時間?
我也希望這個宏運行時不需要用戶輸入(網上有些建議讓用戶每次迭代都推進代碼)。
Sub all()
Dim wb1 As Workbook
Set wb1 = Workbooks("all")
Dim wb2 As Workbook
Set wb2 = Workbooks("other")
For i = 2 To 5
Application.Wait Now() + TimeValue("00:01:00")
wb2.Sheets("Sheet1").Cells(4, 2).Copy
wb1.Sheets("Sheet1").Cells(i, 18).PasteSpecial xlPasteValues
Next i
End Sub
難道'application.wait'不行?或者只是不夠停頓?你現在的代碼有什麼'錯誤'? – BruceWayne
如果宏可以告訴「拉」完成時,這很容易做到。是否有一些單元格開始爲空,但在「拉」完成時會獲得一個值? –
你真的想要解決什麼問題?我們如何重現它?你暫停VBA的是什麼?暫停時你期望發生什麼? –