更改数据透视表中的date范围

如何在数据透视表的报告filter中自动检查/取消选中date?

我有一个数据透视表,我需要根据date范围(过去七天,前七天)提取数据。 电子表格有多个数据透视表,点击无数checkbox(每年,每季度,每月,每天,取消选中以前的日子,在下拉菜单中resize和滚动)的过程令人生气。

数据透视表复选框

我想要一个有date的字段,然后运行一个macros,根据该date修改选定的date。 例如,在A1单元格中input“11/11”,只有11月4 – 10日的date范围的checkbox被检查,10月28日 – 11月3日的date范围被检查。 然后下个星期,我可以用新的date更新A1,然后从那里开始。

我已经能够编写一个macros设置datecheckbox,但我不能更新它,而不需要手动键入在本月的实际日子。 下面是操纵datecheckbox的代码块。 但是我怎么能把整个工作自动化呢? 理想情况下,任何解决scheme都会考虑到两个月的时间。

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]")` 

我已经尝试使用循环来生成string,如“2013-11-04”,“2013-11-05”等,然后build立一个长string(包含“日”行)。 但是,除了把它们粘贴到一个macros(粘贴上一周的文本块)之外,我不能使用这个结果。 这导致大量的复制和粘贴,同时担心覆盖错误的数据透视表。 这比手动检查和取消选中框要好,但仍然不好。

我正在使用Excel 2010. NB我在超级用户问这个,但没有收到任何回应。

虽然我无法深入了解这个问题的VBA解决scheme,但我确实find了一个应该尽快使用(并且更快实施)的替代scheme。

切片机

通过添加两个切片器(最后两个星期的每一个),我可以通过单击拖动来selectdate范围。 一个添加到工作表,他们可以连接到多个数据透视表,甚至分散在多个工作表。 它们也可以进行颜色格式化以匹配它们连接的数据透视表。

注意:如果有人对VBA解决scheme有什么build议,我还是会很高兴看到他们。

从Microsoft网站: 使用切片器来筛选数据透视表数据