工作表(“姓名”)。刷新?

我目前正在尝试优化一些代码。 目前,我使用ActiveWorkbook.RefreshAll ,它显着减慢了整个运行时间,实际上我只需要刷新工作簿中的两个工作表。 函数如Worksheet("Name").RefreshAll存在? 我知道.calculate,但我不认为它会更新我的数据透视表以及在给定的表中计算。

问候

为什么不循环你的工作簿,并在这些特定的工作表,计算刷新数据透视表? 如果这些表不在同一张表上,则可以调整代码以循环透视表并刷新,而不是在“每个表”循环中进行刷新。

 Sub t() Dim ws As Worksheet Dim pvt As PivotTable For Each ws In ActiveWorkbook.Worksheets If ws.Name = "Sheet4" Or ws.Name = "Sheet2" Then ws.Calculate For Each pvt In ws.PivotTables pvt.RefreshTable Next pvt End If Next ws End Sub