2016-09-02 11 views
0

В настоящее время я работаю над листом Excel, который имеет более 20 сводных таблиц. Все они работают нормально, но когда я хочу обновить неделю, мне нужно сделать это для всех сводных таблиц. Поэтому я хочу использовать VBA для обновления фильтров одним щелчком мыши. Неделя, которая должна быть выбрана, заполняется ячейкой, и оттуда должны быть установлены фильтры. Это код, у меня в данный момент:Изменение фильтра сводной таблицы с использованием VBA

Sub Update_Week() 
Application.ScreenUpdating = False 
Dim PvtTbl As PivotTable 
Dim PvtFld As PivotField 

Set Sheet = Worksheets("Leverancier") 
Set PvtTbl = Sheet.PivotTables("Draaitabel19") 
Set PvtFld = PvtTbl.PivotFields("[Mutatiedatum].[Jaar-Week-Dag].[Weekjaar]") 

Sheet.Range("D4") = PvtFld.DataRange 

End Sub 

В PvtFld.DataRange, текущее значение может быть восстановлено, но PvtFld.CurrentPage = Sheet.Range("D3"), который должен установить значение от D3 («недели 33, 2016»), чтобы фильтр не работает.

Структура фильтра, который я хочу установить показано на рисунке ниже:

Structure часть установки не отображается в коде, я в настоящее время. Может ли кто-нибудь помочь мне с вышеуказанным, чтобы решить эту проблему? Большое спасибо.

ответ

0

Попробуйте это,

temp = Sheet.Range("D3") 
PvtTbl.ClearAllFilters 
PvtTbl.PivotFields("[Mutatiedatum].[Jaar-Week-Dag].[Weekjaar]").PivotFilters.Add Type:=xlCaptionEquals, Value1:=temp 
+0

Это не работает. Он блокируется по адресу: «PvtFld.PivotFilters.Add Тип: = xlCaptionEquals, Value1: =" "& temp &" " – Yanbo

+0

Какова ошибка. Этот код работал для меня –

+0

Ярко-желтый цвет. «Хорошо, чтобы узнать, что и отлаживать :-) – Yanbo