刷新数据透视表
Posted
技术标签:
【中文标题】刷新数据透视表【英文标题】:Refresh Pivot Table 【发布时间】:2016-09-07 05:33:09 【问题描述】:在 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 次然后。
【问题讨论】:
您是否尝试过使用宏记录器来查看它使用的语法?看起来activeworkbook.refreshall
应该替换那些循环。
哪个版本的 Excel?当我使用宏记录器时,我得到这个: ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
数据透视表源到底是什么?源刷新了吗?
@Mat'sMug - 数据透视表源是一个嵌入式 mysql 查询,需要先刷新...我想知道数据透视表是否在完全之前发生。跨度>
Excel 2013 我正在使用下拉菜单中的全部刷新按钮。使用正常的刷新按钮,我得到了 ..pivotcashe.refresh,它也可以通过 vba 为我运行它。
【参考方案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://***.com/a/25054870/3590073
【讨论】:
以上是关于刷新数据透视表的主要内容,如果未能解决你的问题,请参考以下文章