工作表(#34;名称")刷新?

时间:2017-12-14 17:31:32

标签: excel vba refresh

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

此致

1 个答案:

答案 0 :(得分:2)

为什么不循环浏览工作簿,并在这些特定工​​作表上计算刷新数据透视表?如果表不在同一个工作表上,您可以调整代码以循环遍历数据透视表并以此方式刷新,而不是在“每个工作表”循环中。

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