Ошибка фильтра VBA

У меня есть поле фильтра с именем week_of_year (1,2,3,4,5,6,7,8 ....), другой год поля сводных данных (2012,2013,2014), код VBA ниже фильтра на текущей неделе и 2014/2015 год и скрыть все остальное. Но проблема в том, что код зацикливает каждую запись и работает медленно, когда дело доходит до большой сводной таблицы. Я пытаюсь создать новый код, но столкнулся с некоторой ошибкой.

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

Новый код, который я разрабатываю:

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

Код не удалось в

pf.PivotFilters.Add2 xlValueEquals, CStr(dd)

Я также попробовал:

pf.PivotFilters.Add2 Type:= xlValueEquals, Value1 := CStr(dd)

Ошибка неверный вызов процедуры или аргумента. Любая идея, как я могу исправить эту ошибку ?????

Есть ли более быстрый способ фильтрации по нескольким критериям? Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос