从外部源中选择数据
我有一个数据连接,它使用select
SQL 服务器的查询将数据检索到使用 vba 代码的 Excel 工作表中,如下所示:
With ActiveWorkbook.Connections("x"). _
OLEDBConnection
.BackgroundQuery = True
.CommandText = Array( _
"SELECT ... FROM ...
...
ActiveWorkbook.Connections("x").Refresh
链接到导入数据的数据透视表也需要刷新
但是据我所知ActiveWorkbook.Connections("x").Refresh
运行异步并且我想执行刷新完成后运行的代码,以便我可以运行此代码:
Private Sub UpdatePivot()
Dim PV As PivotItem
For Each PV In ActiveSheet.PivotTables("PT1").PivotFields("PN").PivotItems
If PV.Name <> "(blank)" Then
PV.Visible = True
Else
PV.Visible = False
End If
Next
End Sub
但只有在读取数据时
我怎么知道刷新何时完成获取所有数据?
我必须做什么才能UpdatePivot
在刷新完成后才运行子程序而不求助于sleep
黑客。
PS 有时查询很快(<1 秒),有时很慢(> 30 秒),具体取决于我选择的确切数据,这是动态的。