我有一個由ODBC連接到PostgreSQL數據庫的表填充。此連接的查詢具有一個連接到工作表中單元格值的參數。查詢運行並刷新表後,我想將數據集複製到新的工作表中,每次刷新表時都會附加新的數據集。問題是,我創建的VBA循環不會暫停足夠長的時間,以便每次增加參數時刷新表。我已經嘗試刷新腳本中的連接,然後使用'doevents'讓Excel跟上。不起作用。會發生什麼是VBA運行第一個查詢,然後簡單地複製結果數據集所需的次數以滿足循環。它不會每次刷新數據。因此,我得到複製5或6倍的數據的第一次迭代工作表等參數傳遞到查詢後,表刷新,ODBC刷新
這裏是我的腳本:
Sub auto_increment()
Dim i As Integer
Dim d As Integer
Dim wb As Workbook
Dim r As Integer
Set wb = Application.Workbooks("Competitiveness Summary_any date")
d = wb.Sheets("data").Range("AS2").Value
With wb
For i = 1 To d
.Sheets("data").Range("AQ4").Formula = "=workday(AQ2," & i & ",Holidays!D1:D8)"
.Worksheets("data").Select
ThisWorkbook.Connections("query from Tigris_fulfillment5").Refresh
DoEvents
r = .Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row + 1
.Sheets("data").Range("Table_ExternalData_1").Copy
.Sheets("Sheet2").Select
.Sheets("Sheet2").Range("A" & r).Select
ActiveSheet.Paste
Next i
End With
End Sub
變量「d」代表的工作日兩個日期之間的數字。我想按工作日數遞增我的參數單元格。總而言之,我試圖創建一個在兩個日期之間發生的舊數據的平面文件。目前的查詢只設計爲一次返回一天的數據。
任何援助將不勝感激。