Ошибка фильтра 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)
Ошибка неверный вызов процедуры или аргумента. Любая идея, как я могу исправить эту ошибку ?????
Есть ли более быстрый способ фильтрации по нескольким критериям? Спасибо!