在 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 查询 1 次然后刷新数据透视表。
最佳答案
通过设置 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 中的状态栏显示“正在运行背景查询(单击此处取消)”;单击会弹出一个对话框,显示“已获取所有行。”,但查询显然仍在运行。
另请参阅此答案 - https://stackoverflow.com/a/25054870/3590073
关于excel - 刷新数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169016/