使用VBA更改数据透视表过滤器

时间:2016-09-02 10:56:11

标签: excel vba excel-vba

我目前正在处理一个包含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”)中的值设置为过滤器不起作用。

我想设置的滤镜结构如下图所示:

Structure 设置部分未显示在我目前的代码中。有人可以帮我解决这个问题吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

试试这个,

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