我有一个包含20个不同数据透视表的工作簿.有没有简单的方法来查找所有数据透视表并在VBA中刷新它们?
是.
ThisWorkbook.RefreshAll
或者,如果您的Excel版本足够老,
Dim Sheet as WorkSheet, Pivot as PivotTable For Each Sheet in ThisWorkbook.WorkSheets For Each Pivot in Sheet.PivotTables Pivot.RefreshTable Pivot.Update Next Next
此VBA代码将刷新工作簿中的所有数据透视表/图表.
Sub RefreshAllPivotTables() Dim PT As PivotTable Dim WS As Worksheet For Each WS In ThisWorkbook.Worksheets For Each PT In WS.PivotTables PT.RefreshTable Next PT Next WS End Sub
另一个非编程选项是:
右键单击每个数据透视表
选择表选项
勾选"打开时刷新"选项.
单击"确定"按钮
这将在每次打开工作簿时刷新数据透视表.
ActiveWorkbook.RefreshAll
刷新所有内容,不仅是数据透视表,还有ODBC查询.我有几个VBA查询引用数据连接并使用此选项崩溃,因为该命令运行数据连接而没有从VBA提供的详细信息
如果您只想刷新支点,我建议使用该选项
Sub RefreshPivotTables() Dim pivotTable As PivotTable For Each pivotTable In ActiveSheet.PivotTables pivotTable.RefreshTable Next End Sub
在某些情况下,您可能希望区分数据透视表和其数据透视表.Cache有自己的刷新方法和自己的集合.所以我们可以刷新所有的数据透视表而不是数据透视表.
区别?创建新的数据透视表时,系统会根据前一个表询问您是否需要它.如果您拒绝,则此数据透视表将获得自己的缓存,并使源数据的大小加倍.如果您说是,则保持WorkBook较小,但您添加到共享单个缓存的数据透视表集合.刷新该集合中的任何单个数据透视表时,将刷新整个集合.因此,与刷新WorkBook中的每个数据透视表相比,您可以想象在刷新WorkBook中的每个缓存之间可能存在的差异.
"数据透视表"工具栏中有一个全部刷新选项.足够了.不必做任何其他事情.
按ctrl + alt + F5