如果一个工作簿有100个Pivot表全部使用一个缓存,Workbook.RefreshAll会启动100次刷新还是只有1?
答案 0 :(得分:1)
回答此类问题的最简单方法是编写一些代码并进行测试。
Sub RefreshTest()
Dim TimeTaken As Date
TimeTaken = Now()
ActiveWorkbook.RefreshAll
TimeTaken = Now() - TimeTaken
Debug.Print Now() & vbTab & "Refresh All" & vbTab & Format(TimeTaken, "HH:MM:SS") & " seconds."
TimeTaken = Now()
ActiveWorkbook.PivotCaches(1).Refresh
TimeTaken = Now() - TimeTaken
Debug.Print Now() & vbTab & "Refresh Specific Cache" & vbTab & Format(TimeTaken, "HH:MM:SS") & " seconds."
End Sub
在我的PC上,在具有1048575行的数据透视表上进行测试时,使用RefreshAll和刷新其中一个数据透视表的PivotCache之间没有区别。
答案 1 :(得分:0)
这是一个有趣的问题。我最近在mrexcel.com上发现了一条帖子,询问在每个数据透视表中循环并分别更新每个数据透视表或使用.RefreshAll
的差异。
Jerry Sullivan发布了一个回答(2011年8月16日),其中包含以下评论(版本#2 - > .RefreshAll
,版本#1 - >循环播放pt's):
版本#2可能更有效。除了不单步执行每个工作表之外,它可能会更新每个PivotCache一次,而如果任何数据透视表共享相同的数据透视表,则这些数据透视表将在版本#1下多次刷新。
虽然,我注意到他说“可能”。