这似乎是一个简单的问题,但我花了好几个小时未能解决...... 我想让我的数据透视表更新现有的过滤器,以包含本月的所有日期。我定期更新数据源,此来源包括年初至今的数据。在我的数据透视表中,我只想查看本月的数据。所以我写了这个:
Dim pvtAOL As PivotTable
Set pvtAOL = ActiveSheet.PivotTables(1)
pvtAOL.TableRange1.Activate
pvtAOL.RefreshTable
pvtAOL.PivotFields("Date").ClearAllFilters
pvtAOL.PivotFields("Date").PivotFilters.Add FilterType:=xlAllDatesInPeriodJuly
如果我注释掉最后一行,一切正常。如果我尝试使用包含的最后一行运行它,我会收到以下错误:
Run-time error '448':Named argument not found
如果您看到它们,请打开其他修正/更正,因为我是VBA新手。 THX!
答案 0 :(得分:0)
Microsoft's documentation有点令人困惑。它表示参数的“名称”为Type
,但示例使用FilterType
。
当您录制执行类似操作的宏时,创建的代码使用Type
。
我在使用FilterType
时使用Type
进行了一些测试并获得了与OP相同的错误。
我建议您从
更改代码pvtAOL.PivotFields("Date").PivotFilters.Add FilterType:=xlAllDatesInPeriodJuly
到
pvtAOL.PivotFields("Date").PivotFilters.Add Type:=xlAllDatesInPeriodJuly
要清除“日期”字段中的现有过滤器,以便添加新过滤器,请使用
pvtAOL.PivotFields("Date").ClearLabelFilters
(如果您愿意,可以使用.ClearAllFilters。)