【发布时间】:2013-12-02 03:50:40
【问题描述】:
如何在数据透视表的报告过滤器中自动检查/取消检查日期?
我有一个数据透视表,我需要根据日期范围(过去 7 天、前 7 天)从中提取数据。电子表格有多个数据透视表,点击无数复选框(年、季度、月、每天、取消选中前几天、在下拉菜单中调整大小和滚动)的过程令人抓狂。
我想要一个包含日期的字段,然后运行一个宏来根据该日期修改所选日期。例如在单元格 A1 中输入“11/11”,对于某些表格,仅选中日期范围为 11 月 4 日至 10 日的复选框,而为其他表格选中日期范围为 10 月 28 日至 11 月 3 日的复选框。然后下周,我可以用新日期更新 A1 并从那里开始。
我已经能够编写一个设置日期复选框的宏,但是如果不手动输入当月的实际天数,我就无法更新它。下面是操作日期复选框的代码块。但是我怎样才能使整个工作自动化呢?理想情况下,任何解决方案都会考虑到几个星期跨越两个月。
ActiveSheet.PivotTables(ptNameA20).TableRange1.Select
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
"[Date].[Date Hierarchy].[Year]").VisibleItemsList = Array("")
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
"[Date].[Date Hierarchy].[Quarter]").VisibleItemsList = Array("")
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
"[Date].[Date Hierarchy].[Month]").VisibleItemsList = Array("")
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
"[Date].[Date Hierarchy].[Day]").VisibleItemsList = Array( _
"[Date].[Date Hierarchy].[Day].&[2013-11-04T00:00:00]", _
"[Date].[Date Hierarchy].[Day].&[2013-11-05T00:00:00]", _
"[Date].[Date Hierarchy].[Day].&[2013-11-06T00:00:00]", _
"[Date].[Date Hierarchy].[Day].&[2013-11-07T00:00:00]", _
"[Date].[Date Hierarchy].[Day].&[2013-11-08T00:00:00]", _
"[Date].[Date Hierarchy].[Day].&[2013-11-09T00:00:00]", _
"[Date].[Date Hierarchy].[Day].&[2013-11-10T00:00:00]")`
我尝试使用循环来生成诸如“2013-11-04”、“2013-11-05”等字符串,然后构建一个长字符串(包含“day”行)。但是,我无法使用结果,除非将它们粘贴到宏中(粘贴在前一周的文本块上)。这会导致大量复制和粘贴,同时担心覆盖错误的数据透视表。这比手动选中和取消选中框要好,但仍然不好。
我正在使用 Excel 2010。注意我在 SuperUser 中问过这个问题,但没有收到任何回复。
【问题讨论】:
-
我需要每天的数据(即生成显示一周中每一天的数据的图表)。此外,报告过滤器中不提供按周分组。据我了解,它仅在行标签中可用。
标签: vba excel excel-2010 pivot-table