首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正在使用宏刷新excel工作簿中的所有透视表

正在使用宏刷新excel工作簿中的所有透视表
EN

Stack Overflow用户
提问于 2008-09-16 10:14:20
回答 7查看 574.3K关注 0票数 91

我有一个工作簿,里面有20个不同的透视表。有没有什么简单的方法可以在VBA中找到并刷新所有的数据透视表?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-09-16 10:18:52

是。

代码语言:javascript
复制
ThisWorkbook.RefreshAll

或者,如果您的Excel版本足够旧,

代码语言:javascript
复制
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
票数 185
EN

Stack Overflow用户

发布于 2012-09-26 06:32:40

ActiveWorkbook.RefreshAll刷新所有内容,不仅包括数据透视表,还包括ODBC查询。我有几个引用数据连接的VBA查询,当该命令在没有VBA提供的详细信息的情况下运行数据连接时,使用此选项会崩溃

如果您只想刷新透视图,我建议您使用此选项

代码语言:javascript
复制
Sub RefreshPivotTables()     
  Dim pivotTable As PivotTable     
  For Each pivotTable In ActiveSheet.PivotTables         
    pivotTable.RefreshTable     
  Next 
End Sub 
票数 20
EN

Stack Overflow用户

发布于 2011-12-08 21:53:48

在某些情况下,您可能希望区分PivotTable和它的PivotCache。缓存有它自己的刷新方法和自己的集合。所以我们可以刷新所有的PivotCaches而不是PivotTables。

有什么不同?当您创建新的透视表时,系统会询问您是否要基于以前的表创建透视表。如果您选择“否”,此数据透视表将获得自己的缓存,并将源数据的大小加倍。如果你说“是”,你会保持你的WorkBook很小,但是你会添加到一个共享单个缓存的透视表集合中。当您刷新该集合中的任何单个透视表时,整个集合都会被刷新。因此,您可以想象刷新WorkBook中的每个缓存与刷新WorkBook中的每个数据透视表之间的区别。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档