You can process them in a loop but you need to handle errors if some of the pivots don't have the same fields:
rivate Sub Group_Find_Top10()
dim pivots, pivot
Dim pt20, pt22, pt24, pt25, pt26, pt27 As PivotTable
Dim Fld1, Fld2, Fld3 As PivotField
Dim shtChrt, shtTbls As Worksheet
pivots = array("PivotTable20", "PivotTable22", "PivotTable24", "PivotTable25", "PivotTable26", "PivotTable27")
for each pivot in pivots
set pt = Worksheets("Tables").PivotTables(pivot)
Set Fld1 = pt.PivotFields("FnctnLvl1")
Set Fld2 = pt.PivotFields("Lvl678")
Set Fld3 = pt.PivotFields("CaseTypeRU")
Set shtChrt = ThisWorkbook.Worksheets("Charts")
Set shtTbls = ThisWorkbook.Worksheets("Tables")
If shtChrt.Range("D3") = "Function" Then
With pt
Fld3.ClearAllFilters
Fld3.CurrentPage = "(All)"
End With
...
end if
next pivot
for example.
Bookmarks