在Excel 2013中 - 刷新数据透视表的VBA语法是什么?我已经尝试了下面的两个选项,它们都没有刷新我的数据透视表。
'Does Not Work
Sheets("Sheet1").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
'Does Not Work
For Each Sheet In ThisWorkbook.Worksheets
For Each Pivot In Sheet.PivotTables
Pivot.RefreshTable
Pivot.Update
Next
Next
修改
要添加它 - 我实际上需要刷新嵌入式MySQL查询,然后刷新数据透视表。
答案 0 :(得分:0)
我的问题是通过在刷新之前在相关连接中将BackgroundQuery
设置为False
来解决的:
With ThisWorkbook.Connections(1).OLEDBConnection
.BackgroundQuery = False
.Refresh
End With
Pivot.RefreshTable
(用适当的连接对象替换OLEDBConnection
)
似乎将BackgroundQuery
设置为True
,连接将无法在代码退出之前完成检索数据。你可以这样做:
With ThisWorkbook.Connections(1).OLEDBConnection
.BackgroundQuery = True
.Refresh
Do While .Refreshing
DoEvents
Loop
End With
此循环永不终止,Excel中的状态栏显示“RUNNING BACKGROUND QUERY(点击此处取消)”;点击会显示一个对话框,显示“所有行已获取。”,但查询仍然显示正在运行。