我有一个由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”代表的工作日两个日期之间的数字。我想按工作日数递增我的参数单元格。总而言之,我试图创建一个在两个日期之间发生的旧数据的平面文件。目前的查询只设计为一次返回一天的数据。
任何援助将不胜感激。