Фильтр сводной таблицы VBA 2 значения в том же фильтре - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь отфильтровать сводную таблицу на основе двух значений ячейки для одного и того же фильтра. Я нашел код, который я могу адаптировать для одной из ячеек (NewCat), у меня нет уверенности в том, как интегрировать в свой код вторую ячейку, которая NewCat2. Поэтому я хочу, чтобы это было в конце:

Field.CurrentPage = NewCat and NewCat2

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

Private Sub Worksheet_Change(ByVal Target As Range)
'This line stops the worksheet updating on every change, it only updates when cell
'H6 or H7 is touched
If Intersect(Target, Range("B2:E2")) Is Nothing Then Exit Sub

'Set the Variables to be used
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
Dim NewCat2 As String
Dim pt2 As PivotTable
Dim Field2 As PivotField
Dim pt3 As PivotTable
Dim Field3 As PivotField
Dim pt4 As PivotTable
Dim Field4 As PivotField
Dim pt5 As PivotTable
Dim Field5 As PivotField
Dim pt6 As PivotTable
Dim Field6 As PivotField
Dim pt7 As PivotTable
Dim Field7 As PivotField
Dim pt8 As PivotTable
Dim Field8 As PivotField
Dim pt9 As PivotTable
Dim Field9 As PivotField

Dim xpitme As PivotItem

'Here you amend to suit your data
Set pt = Worksheets("DT kosten (excl uren)").PivotTables("Draaitabel4")
Set Field = pt.PivotFields("EvenementID")
Set pt2 = Worksheets("DT kosten uren (totaal)").PivotTables("Draaitabel4")
Set Field2 = pt2.PivotFields("EvenementID")
Set pt3 = Worksheets("DT kosten uren (per week)").PivotTables("Draaitabel3")
Set Field3 = pt3.PivotFields("EvenementID")
Set pt4 = Worksheets("DT uren (aantal per week)").PivotTables("Draaitabel1")
Set Field4 = pt4.PivotFields("EvenementID")
Set pt5 = Worksheets("DT Inkomsten(alleen stands exp)").PivotTables("Draaitabel1")
Set Field5 = pt5.PivotFields("EvenementID")
Set pt6 = Worksheets("DT Inkomsten verkoopfact totaal").PivotTables("Draaitabel1")
Set Field6 = pt6.PivotFields("EvenementID")
Set pt7 = Worksheets("DT aantal exp(weken voor event)").PivotTables("Draaitabel1")
Set Field7 = pt7.PivotFields("EvenementID")
Set pt8 = Worksheets("DT Forecasts").PivotTables("Draaitabel1")
Set Field8 = pt8.PivotFields("EvenementID")
Set pt9 = Worksheets("DT begroting").PivotTables("Draaitabel1")
Set Field9 = pt9.PivotFields("EvenementID")

NewCat = Worksheets("Per evenement").Range("C2").Value
NewCat2 = Worksheets("Per evenement").Range("E2").Value

On Error Resume Next

'This updates and refreshes the PIVOT table


With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With

With pt2
Field2.ClearAllFilters
Field2.CurrentPage = NewCat
pt2.RefreshTable
End With

With pt3
Field3.ClearAllFilters
Field3.CurrentPage = NewCat
pt3.RefreshTable
End With

With pt4
Field4.ClearAllFilters
Field4.CurrentPage = NewCat
pt4.RefreshTable
End With

With pt5
Field5.ClearAllFilters
Field5.CurrentPage = NewCat
pt5.RefreshTable
End With

With pt6
Field6.ClearAllFilters
Field6.CurrentPage = NewCat
pt6.RefreshTable
End With

With pt7
Field7.ClearAllFilters
Field7.CurrentPage = NewCat
pt7.RefreshTable
End With

With pt8
Field8.ClearAllFilters
Field8.CurrentPage = NewCat
pt8.RefreshTable
End With

With pt9
Field9.ClearAllFilters
Field9.CurrentPage = NewCat
pt9.RefreshTable
End With

End Sub
...