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 strFormula As String: strFormula = 
Dim pvt As PivotTable: Set pvt = 
Dim pvtfor As PivotFormula
Set pvtfor = pvt.PivotFormulas.Add(Formula:=strFormula)

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

For Each

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

Dim pvt As PivotTable: Set pvt = 
Dim pvtforPivotFormula As PivotFormula
For Each pvtforPivotFormula In pvt.PivotFormulas
Next pvtforPivotFormula


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.


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


Returns the parent object for the specified object. Read-only.


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.

Sub UseStandardFormula() 
 Dim pvtTable As PivotTable 
 Set pvtTable = ActiveSheet.PivotTables(1) 
 ' Change calculated field of decimals by adding '10'. 
 pvtTable.CalculatedFields.Item(1).StandardFormula = "Decimals + 10" 
End Sub


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


Creates a new PivotTable formula.

Syntax : expression.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.

The following argument is optional

UseStandardFormula - A standard PivotTable formula


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


Returns a single object from a collection.

Syntax : expression.Item (Index)

Index: The name or index number for the object.

MsgBox Worksheets(1).PivotTables(1).PivotFormulas.Item(1).Formula


Returns the parent object for the specified object. Read-only.