VBA - 数据透视表刷新1004应用程序未定义错误

时间:2018-05-15 14:00:15

标签: excel-vba pivot-table vba excel

当我尝试运行宏来更新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

1 个答案:

答案 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