代码之家  ›  专栏  ›  技术社区  ›  user6089076

工作表(“名称”)。刷新

  •  1
  • user6089076  · 技术社区  · 7 年前

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

    当做

    1 回复  |  直到 7 年前
        1
  •  1
  •   BruceWayne    7 年前

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

    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