我有一个工作簿,里面有20个不同的透视表。有没有什么简单的方法可以在VBA中找到并刷新所有的数据透视表?
发布于 2008-09-16 10:18:52
是。
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
发布于 2012-09-26 06:32:40
ActiveWorkbook.RefreshAll
刷新所有内容,不仅包括数据透视表,还包括ODBC查询。我有几个引用数据连接的VBA查询,当该命令在没有VBA提供的详细信息的情况下运行数据连接时,使用此选项会崩溃
如果您只想刷新透视图,我建议您使用此选项
Sub RefreshPivotTables()
Dim pivotTable As PivotTable
For Each pivotTable In ActiveSheet.PivotTables
pivotTable.RefreshTable
Next
End Sub
发布于 2011-12-08 21:53:48
在某些情况下,您可能希望区分PivotTable和它的PivotCache。缓存有它自己的刷新方法和自己的集合。所以我们可以刷新所有的PivotCaches而不是PivotTables。
有什么不同?当您创建新的透视表时,系统会询问您是否要基于以前的表创建透视表。如果您选择“否”,此数据透视表将获得自己的缓存,并将源数据的大小加倍。如果你说“是”,你会保持你的WorkBook很小,但是你会添加到一个共享单个缓存的透视表集合中。当您刷新该集合中的任何单个透视表时,整个集合都会被刷新。因此,您可以想象刷新WorkBook中的每个缓存与刷新WorkBook中的每个数据透视表之间的区别。
https://stackoverflow.com/questions/70947
复制相似问题