2014-04-28 93 views
2

我已經基於從數據表提供的數據透視表構建了一個報表。細節非常長(數萬行),用戶希望數據被特定字段彙總,以便他只能對他感興趣的總數進行深入分析。有效隱藏數據透視表

我目前通過成功循環指定字段的所有數據透視表的所有透視項並隱藏它們。但是,這需要花費大量的時間(> 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中,謝謝!

回答

3

是:而不是通過透視字段的支點項目列舉您只需使用透視字段本身例如: - 的.ShowDetail財產

更換

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

隨着

.ShowDetail = False 
+0

感謝。我已經找到了它並準備發佈答案。這正是我所用的,它在一秒鐘或更短的時間內工作。太好了! – ApplePie

+0

很抱歉讓您轉到帖子;)。很高興它按任何方式排序。 –

相關問題