PivotTables Object (Excel)

Office 2013 and later

Contribute to this content

Use GitHub to suggest and submit changes. See our guidelines for contributing to VBA documentation.

A collection of all the PivotTable objects in the specified workbook.

Note Note

The Workbook.PivotTables property (which is new for Office) does not return all the PivotTable objects in the workbook; instead it returns only those associated with decoupled PivotCharts. However, Worksheet.PivotTables returns all the PivotTable objects in the worksheet, irrespective of whether they are associated with decoupled PivotCharts.

Because PivotTable report programming can be complex, it’s generally easiest to record PivotTable report actions and then revise the recorded code.

Use the PivotTables method to return the PivotTables collection. The following example displays the number of PivotTable reports on Sheet3.

MsgBox Worksheets("sheet3").PivotTables.Count

Use the PivotTableWizard method to create a new PivotTable report and add it to the collection. The following example creates a new PivotTable report from a Microsoft Excel database (contained in the range A1:C100).

ActiveSheet.PivotTableWizard xlDatabase, Range("A1:C100")

Use PivotTables(index), where index is the PivotTable index number or name, to return a single PivotTable object. The following example makes the Year field a row field in the first PivotTable report on Sheet3.

Worksheets("sheet3").PivotTables(1) _ 
 .PivotFields("year").Orientation = xlRowField