Erro no filtro VBA
Eu tenho um campo de filtro chamado week_of_year (1,2,3,4,5,6,7,8 ....), outro ano do campo pivô (2012,2013,2014), o código vba abaixo do filtro na semana atual e ano de 2014/2015 e oculte todo o resto. Mas o problema é que o código faz um loop em cada registro e fica lento quando se trata de uma grande tabela dinâmica. Estou tentando um novo código, mas encontrei algum erro.
Sub datefilter()
Dim PvtTbl As PivotTable
Set PvtTbl = Worksheets("LO").PivotTables("PivotTable3")
Dim dd As Integer
dd = Format(Date, "ww")
Dim pf As PivotField
Dim pf1 As PivotField
Dim PI As PivotItem
Set pf =
Worksheets("LO").PivotTables("PivotTable3").PivotFields("week_of_year")
Set pf1 =
Worksheets("LO").PivotTables("PivotTable3").PivotFields("year")
PvtTbl.ClearAllFilters
For Each PI In pf.PivotItems
If PI.Name = CStr(dd) Then
PI.Visible = True
Else
PI.Visible = False
End If
Next
For Each PI In pf1.PivotItems
If PI.Name = "2014" Or PI.Name = "2015" Then
PI.Visible = True
Else
PI.Visible = False
End If
Next
End Sub
O novo código que eu desenvolvo é:
Sub datefilter1()
Dim PvtTbl As PivotTable
Set PvtTbl = Worksheets("LO").PivotTables("PivotTable3")
Dim dd As Integer
dd = Format(Date, "ww")
Dim pf As PivotField
Set pf =
Worksheets("LO").PivotTables("PivotTable3").PivotFields("week_of_year")
pf.PivotFilters.Add2 xlValueEquals, 3
End Sub
O código falhou em
pf.PivotFilters.Add2 xlValueEquals, CStr(dd)
Eu também tentei:
pf.PivotFilters.Add2 Type:= xlValueEquals, Value1 := CStr(dd)
O erro é chamada ou argumento inválido do procedimento. Qualquer idéia de como corrigir esse erro ?????
Alguma maneira mais rápida de filtrar por vários critérios de filtro? Obrigado!