VBA从多个工作表中删除枢轴小计

时间:2017-06-08 06:59:50

标签: excel vba excel-vba

我一直在使用下面的宏删除活动工作表上的小计。但是,我想的是,不是使用它5次(并且每次在使用宏之前必须选择工作表),它可以调整为Loop(可能不是因为有12个带有数据透视表的工作表而且我只对5)或使用Case来定义带有我需要修改的数据透视表的工作表。

问题是我对VBA还是一个新手,到目前为止还无法使其工作。任何帮助将不胜感激。

基本代码:

Sub NoSubtotals()

    Dim pt As PivotTable
    Dim pf As PivotField

    On Error Resume Next
    For Each pt In ActiveSheet.PivotTables
        For Each pf In pt.PivotFields
            pf.Subtotals(1) = True
            pf.Subtotals(1) = False
        Next pf
    Next pt
End Sub

使用数据透视表的表格我想删除小计:

  • 标题
  • Item_Breakdown
  • Settl_List
  • MatDef
  • All_Records

1 个答案:

答案 0 :(得分:1)

遍历您要使用的工作表:

Sub NoSubtotals()

    Dim pt As PivotTable
    Dim pf As PivotField
    Dim ws As Worksheet
    For Each ws In Worksheets(Array("Header", _
                                    "Item_Breakdown", _
                                    "Settl_List", _
                                    "MatDef", _
                                    "All_Records"))

        On Error Resume Next
        For Each pt In ws.PivotTables
            For Each pf In pt.PivotFields
                pf.Subtotals(1) = True
                pf.Subtotals(1) = False
            Next pf
        Next pt
        On Error GoTo 0
    Next
End Sub