Class PivotFormula (Excel VBA)

The class PivotFormula represents a formula used to calculate results in a PivotTable report.


To use a PivotFormula class variable it first needs to be instantiated, for example

Dim pvtfor as PivotFormula
Set pvtfor = ActiveCell.PivotTable.PivotFormulas(Index:=1)

The following procedures can be used to set variables of type PivotFormula: PivotFormulas.Add and PivotFormulas.Item.

For Each

Here is an example of processing the PivotFormula items in a collection.

Dim pvtfor As PivotFormula
For Each pvtfor In ActiveCell.PivotTable.PivotFormulas
Next pvtfor


Deletes the object.



Returns or sets a String value that represents the object's formula in A1-style notation and in the language of the macro.

This property is not available for OLAP data sources. If the cell contains a constant, this property returns the constant. If the cell is empty, this property returns an empty string. If the cell contains a formula, the Formula property returns the formula as a string in the same format that would be displayed in the formula bar (including the equal sign). If you set the value or formula of a cell to a date, Microsoft Excel checks to see whether that cell is already formatted with one of the date or time number formats. If not, Excel changes the number format to the default short date number format. If the range is a one- or two-dimensional range, you can set the formula to a Visual Basic array of the same dimensions. Similarly, you can put the formula into a Visual Basic array. Setting the formula for a multiple-cell range fills all cells in the range with the formula.

ActiveCell.PivotTable.PivotFormulas(1).Formula =


Returns or sets a Long value that represents the index number of the PivotFormula object within the PivotFormulas collection.

ActiveCell.PivotTable.PivotFormulas(1).Index =


Returns or sets a String specifying formulas with standard English (United States) formatting.

The StandardFormula property primarily affects item names with date or number formatting. It provides a way to specify or query a formula for a given calculated item. The StandardFormula property is "international-friendly" whereas the Formula property is not.

ActiveCell.PivotTable.PivotFormulas(1).StandardFormula = "Decimals + 10"


Returns or sets a String value that represents the name of the specified formula in the PivotTable formula.

ActiveCell.PivotTable.PivotFormulas(1).Value =


Creates a new PivotTable formula.

Add (Formula, UseStandardFormula)

Worksheets(1).PivotTables(1).PivotFormulas _ 
 .Add "Year['1998'] Apples = (Year['1997'] Apples) * 2"


The following argument is required

Formula (String) - The new PivotTable formula.

Optional arguments

The following argument is optional

UseStandardFormula - A standard PivotTable formula


Returns a Long value that represents the number of objects in the collection.

Dim lngCount As Long
lngCount = ActiveCell.PivotTable.PivotFormulas.Count


Returns a single object from a collection.

Item (Index)

Index: The name or index number for the object.

Dim pvtfor As PivotFormula
Set pvtfor = ActiveCell.PivotTable.PivotFormulas(Index:=1)