Фильтр VBA Pivot для нескольких диапазонов ячеек, примененный к нескольким таблицам - PullRequest
0 голосов
/ 21 января 2019

Хотя эта тема широко обсуждается, я не смог найти правильного решения этой проблемы.

Как аналитик данных, я хотел бы применить фильтры к нескольким сводным таблицам на основе значений в нескольких ячейках.диапазоны.

Я искал ответы и пытался применить эти решения:

https://www.mrexcel.com/forum/excel-questions/950078-filtering-pivot-table-based-cell-value.html

и это:

https://www.youtube.com/watch?v=xCJgCRuVU6c&t=201s

В частности, этот код:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'This line stops the worksheet updating on every change, it only updates when cell
    'A1 to A9 is touched
    If Intersect(Target, Worksheets(1).Range("A1:A9")) Is Nothing Then Exit Sub

'Set the Variables to be used
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String

'Here you amend to suit your data
Set pt = Worksheets(1).PivotTables("PivotTable1")
Set Field = pt.PivotFields("Sales Region")
NewCat = Worksheets(1).Range("A1:A9").Value

'This updates and refreshes the PIVOT table
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With


End Sub

однако они не применяются на 100%, так как, во-первых, он вообще ничего не обновляет (без ответа), а во-вторых, он применяет фильтр только кпервый столбец, даже если он будет работать.

Пожалуйста, смотрите прикрепленную фотографию того, как я хотел бы, чтобы модель выглядела. enter image description here

Выше, конечно, не совсемЗначение true, поскольку параметры фильтрации удаляют многие значения из таблиц.

Сводные таблицы имеют идентификаторы "PivotTable1" и "PivotTable2".Рабочий лист называется «Лист1».

Я хотел бы иметь возможность изменить эти значения, а также параметры фильтра (например, включить фильтр значений даты.

Пожалуйста, дайте мне знать, если что-тонеясно.

Кроме того, если есть другие варианты, не включающие VBA, они также будут приняты.

...