Skip to content

Excel VBA Macro to Apply PivotTable Style

    Use the TableStyle2 property of the PivotTable object. If you are wondering why the 2, it’s because TableStyle is used for Excel Tables.

    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim wb As Workbook
    Set wb = ActiveWorkbook
    Dim PTcache As PivotCache
    Dim PT As PivotTable
    'Define the cache for the PivotTable
    Set PTcache =wb.PivotCaches.Create(SourceType:=xlDatabase, _
    SourceData:=Range("Sales_Data[#All]"),Version:=xlPivotTableVersion15)
    'Create the PivotTable
    Set PT =ws.PivotTables.Add(PivotCache:=PTcache, _
    TableDestination:=Range("J1"),TableName:="Sales Analysis")
    PT.AddFieldsRowFields:=Array("Region", "Branch"), _
    ColumnFields:="Product",PageFields:="Product Category"
    PT.AddDataFieldField:=PT.PivotFields("Revenue"), _
    Caption:="No ofTransactions", Function:=xlCount
    'Apply style to PivotTable
    PT.TableStyle2 ="PivotStyleLight7"
    PT.ShowTableStyleRowStripes = True