有效地隐藏数据透视项目



我构建了一个基于数据表的透视表的报告。详细信息相当长(数万行),用户希望通过特定字段汇总数据,以便他只能深入查看他感兴趣的总数。

我目前已经成功地遍历了指定字段的所有透视表的所有透视项并将其隐藏。但是,这需要相当长的时间(>15分钟)才能运行。有没有任何方法可以通过使用不同的流程来优化这一点,或者有没有任何可以更快地批量完成这项任务的选项(通过设置或选项)?

以下是被调用来执行此任务的函数:

Sub groupByjrnl_id()
    Dim ws As Worksheet
    Dim pi As PivotItem
    Dim pt As PivotTable
    Excel.Application.ScreenUpdating = False
    Excel.Application.Calculation = xlCalculationManual
    For Each ws In Worksheets
        If Left(ws.Name, 3) = "rap" Then
            Excel.Application.StatusBar = "Groupement des jrnl_id " & ws.Name
            For Each pt In ws.PivotTables
                With pt.PivotFields("jrnl_id")
                    For Each pi In .PivotItems
                        pi.ShowDetail = False
                    Next pi
                End With
            Next pt
        End If
    Next ws
    Excel.Application.StatusBar = ""
    Excel.Application.ScreenUpdating = True
    Excel.Application.Calculation = xlCalculationAutomatic
End Sub

我正在使用Excel 2007。非常感谢。

是:您只需使用数据透视字段本身的.ShowDetail属性,而不是枚举数据透视字段的数据透视项,例如:

更换

For Each pi In .PivotItems
    pi.ShowDetail = False
Next pi

.ShowDetail = False

最新更新