0
我有一個宏在excel中運行工作表,其中顯示的數據連接到外部數據庫。我試圖在數據源更新時刷新顯示的數據,而這些數據都是在宏運行時顯示的。要清楚,通過「運行」,我的意思是宏在工作簿中顯示每張表幾秒鐘,然後循環。VBA excel運行宏
下面是代碼:
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As
Long) As Integer
Public Sub Switch()
Dim ws As Worksheet
Do
For Each ws In ThisWorkbook.Worksheets
ws.Activate
Application.Wait Now() + TimeValue("00:00:05")
If GetAsyncKeyState(vbKeyShift) Then Exit Sub
DoEvents
Next ws
Loop
End Sub
我曾嘗試之前「下一步WS」插入ActiveWorkbook.RefreshAll,我也試過ThisWorkbook.RefreshAll在同一位置。到目前爲止,當我被告知數據已經更新時,我停止了宏的運行,這可以讓數據刷新,然後再次運行宏。這是我想要避免必須做的。
非常感謝您的幫助。
感謝,
德里克
我幾次讀到你的問題,我仍然不確定你想要做什麼。如果您想等到查詢刷新並繼續,請在查詢表上調用'.Refresh False'。如果您異步刷新不受控制的查詢,請[訂閱他們的'AfterRefresh'事件](http://stackoverflow.com/q/26983053/11683)。 – GSerg
嗨GSerg,所以當我運行這個宏時,它通過每張表單播放5秒,然後循環播放,就像看幻燈片一樣。在運行時,來自服務器的數據(即正在牀單上顯示的數據)每天更新一次或兩次。我希望宏在運行時刷新以顯示新數據。 –