我构建了一个基于数据表的透视表的报告。详细信息相当长(数万行),用户希望通过特定字段汇总数据,以便他只能深入查看他感兴趣的总数。
我目前已经成功地遍历了指定字段的所有透视表的所有透视项并将其隐藏。但是,这需要相当长的时间(>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