У меня есть 16 сводных таблиц, которые мне нужно обновить, когда пользователь нажимает кнопку. Код, который должен работать следующим образом:excel 2010 vava loop pivot tables
ActiveSheet.PivotTables("PivotTable10").PivotFields("count").ClearAllFilters
ActiveSheet.PivotTables("PivotTable10").PivotFields("scrap code").ClearAllFilters
ActiveSheet.PivotTables("PivotTable10").PivotFields("count").ShowAllItems = True
With ActiveSheet.PivotTables("PivotTable10").PivotFields("count")
.PivotItems("0").Visible = False
End With
Названия сводных таблиц являются: MSP,MSP30,FSP,FSP30,MRP,MRP30,FRP,FRP30,MPP,MPP30,FPP,FPP30,MCP,MCP30,FCP,FCP30
Я хотел бы заменить PivotTable10
с переменной петлями через этот список сводных таблиц. Прямо сейчас мой код составляет 16 блоков кода выше. Я мало знаю о циклах, и я не нашел хороший пример этого типа цикла в моих поисковых системах.
EDIT: наконец-код, который работал, оба ответа ниже работали прекрасно, этот код просто работал немного быстрее
Sub IteratePivots()
Application.ScreenUpdating = False
On Error Resume Next
Worksheets("Analytics Admin").Activate
Dim pvtTables As PivotTables
Dim pvtTable As PivotTable
Set pvtTables = Application.ActiveSheet.PivotTables
For Each pvtTable In pvtTables
pvtTable.PivotFields("count").ClearAllFilters
pvtTable.PivotFields("scrap code").ClearAllFilters
pvtTable.PivotFields("count").ShowAllItems = True
With pvtTable.PivotFields("count")
.PivotItems("0").Visible = False
End With
Next
Application.ScreenUpdating = False
End Sub
Только имена Pivottable будут меняться в вашем коде, я прав? – Siva
, что правильно, я буду запускать эти точные 4 строки каждый раз (возможно, мне придется добавить исправление ошибки, когда единственное значение равно 0). –