Кнопка фильтра сводной таблицы - PullRequest
0 голосов
/ 28 марта 2019

Я работаю над кодом VBA в Excel, чтобы отфильтровать сводную таблицу (на другом листе с другим источником данных) на основе выбора другой сводной таблицы с помощью кнопки.

Я заходил на несколько форумов и изменял код в соответствии со своими потребностями, но мне не удалось подключить код к моим потребностям. Я пробовал код, такой как объекты и модули для изменения фильтров сводной таблицы и обновления. В настоящее время я работаю над созданием своего кода с нуля, но я столкнулся с проблемой. Все помогает! Спасибо

Option Explicit


Sub Button1_Click()

Dim ws As Worksheet, ws2 As Worksheet
Dim pvtTable As PivotTable, pvtTable2 As PivotTable
Dim pvtField As PivotField, pvtField2 As PivotField
Dim pvtItem As PivotItem, pvtItem2 As PivotItem
Dim s$, a$

'ws.pvtTable.PvtField
Set ws = ActiveSheet
Set pvtTable = ws.PivotTables("PivotTable1")
Set pvtField = pvtTable.PivotFields("Style")

'ws2.pvtTable2.pvtField2
Set ws2 = Sheets(2)
Set pvtTable2 = ws2.PivotTables("PivotTable2")
Set pvtField2 = pvtTable2.PivotFields("Style")

'Setting the filters - issues here?
'Let s = ws.PivotTables("PivotTable1").pvtField
Let s = pvtField
'Let a = ws2.PivotTables("PivotTable2").pvtField2
Let a = pvtField2
Let a = s

End Sub

Я ожидаю, что смогу выбрать «Стиль» в одной сводной таблице, а затем заполнить другую сводную таблицу, как только я нажму на кнопку.

**** Я отредактировал код в соответствии с последним. У меня нет никаких ошибок, но он не фильтрует на втором листе, как я хочу. Как отфильтровать несколько сводных таблиц на разных листах с разными источниками данных? ****

1 Ответ

0 голосов
/ 28 марта 2019

Я не лучший в сводных таблицах, но чтобы помочь с вашими будущими проектами - вы должны поместить переменные, которые похожи друг на друга

Также я не уверен, почему вы используете Dim Target as Sheet2, когда вы можете просто Set ws2 = Sheets(2)

Так что, пожалуйста, посмотрите на это и посмотрите, работает ли он еще?

Option Explicit


Sub Button1_Click()

Dim ws As Worksheet, ws2 As Worksheet
Dim pvtTable As PivotTable, pvtTable2 As PivotTable
Dim pvtField As PivotField, pvtField2 As PivotField
Dim pvtItem As PivotItem, pvtItem2 As PivotItem
Dim s$, a$

'ws.pvtTable.PvtField
Set ws = ActiveSheet
Set pvtTable = ws.PivotTables("PivotTable1")
Set pvtField = pvtTable.PivotFields("Style")

'ws2.pvtTable2.pvtField2
Set ws2 = Sheets(2)
Set pvtTable2 = ws.PivotTables("PivotTable2")
Set pvtField2 = pvtTable.PivotFields("Style")

'Setting the filters - issues here?
Let s = ws.PivotTables("PivotTable1").pvtField
Let a = ws2.PivotTables("PivotTable2").pvtItem2
Let a = s

End Sub
...