我目前正在处理一个包含20多个数据透视表的Excel工作表。它们都工作正常,但是当我想更新一周时,我需要为所有数据透视表执行此操作。因此,我想使用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”)中的值设置为过滤器不起作用。
我想设置的滤镜结构如下图所示:
答案 0 :(得分:0)
试试这个,
temp = Sheet.Range("D3")
PvtTbl.ClearAllFilters
PvtTbl.PivotFields("[Mutatiedatum].[Jaar-Week-Dag].[Weekjaar]").PivotFilters.Add Type:=xlCaptionEquals, Value1:=temp