我已根据数据表中的数据透视表构建了一个报表。细节很长(成千上万行),用户希望数据由特定字段汇总,这样他就可以只钻取他感兴趣的总数。
我目前已成功循环遍历指定字段的所有数据透视表的所有数据透视表项并隐藏它们。然而,这需要花费大量时间(> 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.谢谢!
答案 0 :(得分:3)
是的:您可以简单地使用pivotfield本身的.ShowDetail
属性,而不是枚举pivotfield的枢轴项,例如:
替换
For Each pi In .PivotItems
pi.ShowDetail = False
Next pi
使用
.ShowDetail = False