当我尝试运行宏来更新pviot时,我得到一个对象定义的错误1004。我希望透视图和图表每天更新,以便始终显示最近30天
'pivot filter refresh
Dim DateToday As Date
DateToday = Date
Dim PvtTbl As PivotTable
Set PvtTbl = Worksheets("Sheet1").PivotTables("Pivot1")
PvtTbl.PivotFields("DateAdded").PivotFilters. _
Add2 Type:=xlDateBetween, Value1:=DateToday - 30, Value2:=DateToday
答案 0 :(得分:2)
我能够使用我自己的数据透视表重现您的问题。在尝试应用新过滤器之前,解决方案是来自特定数据透视字段 的ClearAllFilters
。
可能需要进行的另一项检查(此处未显示)是检查以确保过滤前实际可见的字段是实际可见的。
Option Explicit
Sub test()
Dim dateToday As Date
dateToday = Date
Dim pvtTbl As PivotTable
Set pvtTbl = Staffing.PivotTables(1)
Dim ptField As PivotField
Set ptField = pvtTbl.PivotFields("FiscalMonth")
ptField.ClearAllFilters
ptField.PivotFilters.Add2 Type:=xlDateBetween, _
Value1:=dateToday - 30, _
Value2:=dateToday
End Sub