Я довольно новичок в макросах Excel и пытаюсь что-то сделать, но ... я полностью застрял. Я надеюсь, что некоторые из вас могли бы помочь мне.
Я постараюсь объяснить это как можно яснее. Извините, это будет длинным.
У меня 3 листа:
Зависимости (зависимости между отделами, связанные с их деятельностью, включая критичность деятельности): Dept - Process Activity - Targeted Dept - Targeted Process - Targeted Activity - Criticality
Виды деятельности (действия, связанные с каждым отделом): Отдел - Процесс - Операция - Критичность
Лист с 2 сводными таблицами. Первое происходит от зависимостей, а второе от деятельности. Оба имеют фильтр в отделе.
Я пытаюсь сделать так, чтобы при фильтрации зависимостей целевые отделы (их было несколько) должны фильтровать сводную таблицу действий, чтобы покажите мне отделы.
Допустим, я отфильтровал сводную область зависимостей на .. Банковском отделе, который должен выглядеть следующим образом:
-Зависимости сводных данных
Отдел: Банковское дело
Процесс: контроли
Активность: ежедневные контроли
Целевой отдел: управление
Целевой процесс: управление данными
целевое действие: отчетность
Процесс: контроли
Активность: ежедневно Элементы управления
Целевой отдел: IT
Целевой процесс: Поддержка производства
Целевое действие: Инструменты отладки
В My Activity Pivot должны отображаться целевые отделы в сводных зависимостях
-Pivot Activity
Dept1: Управление
Dept2: IT
Я создал макрос, который правильно фильтрует зависимости. Но в моем l oop должна быть какая-то неправильная причина, когда она переходит к моему вложенному l oop, вторая сводная таблица не фильтрует отдел по значению Targeted Department.
это большой макрос, который делает другие вещи, так что вот только эта часть.
Надеюсь, кто-нибудь сможет мне помочь ...
Макрос:
Sub Filter()
Dim pi10 As PivotItem
Dim pf10 As PivotField
Dim pt10 As PivotTable
Dim pi11 As PivotItem
Dim pf11 As PivotField
Dim pt11 As PivotTable
Dim pi12 As PivotItem
Dim pf12 As PivotField
Dim pt12 As PivotTable
Sheets("Criticality on Dependencies").Select
Set pt10 = ActiveSheet.PivotTables("PivotTable1")
Set pf10 = pt10.PivotFields("Department")
Set pt12 = ActiveSheet.PivotTables("PivotTable2")
Set pf12 = pt12.PivotFields("Department")
For Each pi10 In pf10.PivotItems
pi10.Visible = True
Next pi10
For Each pi12 In pf12.PivotItems
pi12.Visible = True
Next pi12
For Each pi10 In pf10.PivotItems
If pi10.Value = cell Then
pi10.Visible = True
Set pf11 = pt10.PivotFields("TargetedDepartment")
For Each pi11 In pf11.PivotItems
For Each pi12 In pf12.PivotItems
If pi12.Value = pi11.Value Then
pi12.Visible = True
ElseIf pi12.Value = "(blank)" Then
Else
pi12.Visible = False
End If
Next pi12
Next pi11
ElseIf pi10.Value = "(blank)" Then
Else
pi10.Visible = False
End If
Next pi10
End sub