How to filter a field in a PivotTable using VBA?

Filtering a field in a PivotTable using VBA can be accomplished by manipulating the PivotTables and PivotFields objects. Below is a step-by-step guide along with sample code to help you achieve this:

Steps

  • Identify the PivotTable: Determine the worksheet and the PivotTable you want to work with.
  • Access the PivotField: Get the PivotField you need to filter on.
  • Apply the Filter: Use the `PivotFilters` method to set the criteria for filtering.

Sample VBA Code

Here’s an example code snippet that demonstrates how to filter a field in a PivotTable:

Sub FilterPivotTableField()

    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim filterValue As String
    
    ' Set worksheet containing the PivotTable
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Adjust sheet name as necessary
    
    ' Reference the PivotTable
    Set pt = ws.PivotTables("PivotTable1") ' Adjust PivotTable name as necessary
    
    ' Reference the PivotField you want to filter
    Set pf = pt.PivotFields("FieldName") ' Replace "FieldName" with the actual field name
    
    ' Define the filter value
    filterValue = "YourFilterValue" ' Replace with your desired filter value
    
    ' Clear previous filters
    pf.ClearAllFilters
    
    ' Apply the filter to the PivotField
    pf.PivotFilters.Add Type:=xlCaptionEquals, Value1:=filterValue

End Sub

Notes

  • Adjust the Worksheet and PivotTable Names: Make sure to replace `”Sheet1″` and `”PivotTable1″` with the actual names used in your Excel file.
  • Specify the Correct PivotField: Replace `”FieldName”` with the name of the field you want to filter.
  • Choose the Correct Filter Value: Set `filterValue` to the criterion you need. If filtering based on other criteria (e.g., greater than, less than), modify the `Type` parameter accordingly.
  • PivotFilters Type: This example uses `xlCaptionEquals` for an equal-to filter. Adjust the `Type` to other options if needed, such as `xlCaptionDoesNotEqual`, `xlCaptionStartsWith`, etc.
  • Error Handling: Consider adding error-handling code, especially if your specified sheet, PivotTable, or field might not exist, which could raise runtime errors.

This code may serve as a starting point, and you can enhance or modify it further according to your specific requirements.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project