到目前为止,我还没有将VBA与数据透视表一起使用。现在我想更新(刷新)2个数据透视表,并将日历周的过滤器设置为最后一整周。
我的问题/问题是:
1)我是否真的需要.ClearAllFilters
行,或者我可以在没有它的情况下设置过滤器吗?
2)如果相应的项目(例如周数13)存在于我的表格中,我可以在设置过滤器之前进行检查吗?否则我会尝试过滤不存在的东西(尚)
3)我是否以正确的方式编写代码或者是否有更短/更好的方法?例如。我不确定With
中的With
在这里是否有意义。
我的代码:
Dim varLastSunday As Date, varWeekNumber As Integer
varLastSunday = Date - Weekday(Date, vbUseSystemDayOfWeek)
varWeekNumber = CLng(Format(varLastSunday, "ww"))
Application.ScreenUpdating = False
With Worksheets(4)
.Range("StartColumns").EntireColumn.Hidden = False
.PivotTables("PivotTable9").PivotCache.Refresh
.PivotTables("PivotTable9").PivotFields("WEEK_NUMBER").ClearAllFilters
.PivotTables("PivotTable9").PivotFields("WEEK_NUMBER").CurrentPage = varWeekNumber
.PivotTables("PivotTable10").PivotCache.Refresh
.PivotTables("PivotTable10").PivotFields("week").ClearAllFilters
.PivotTables("PivotTable10").PivotFields("week").CurrentPage = varWeekNumber
End With
Application.ScreenUpdating = True
答案 0 :(得分:1)