Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 更改数据透视表中的日期范围_Vba_Excel_Excel 2010_Pivot Table - Fatal编程技术网

Vba 更改数据透视表中的日期范围

Vba 更改数据透视表中的日期范围,vba,excel,excel-2010,pivot-table,Vba,Excel,Excel 2010,Pivot Table,如何在数据透视表的报告过滤器中自动检查/取消检查日期 我有一个数据透视表,需要根据日期范围(过去七天、过去七天)从中提取数据。电子表格有多个数据透视表,为每个数据透视表单击无数复选框(年、季度、月、每天、取消选中前几天、在下拉列表中调整大小和滚动)的过程令人抓狂 我希望有一个包含日期的字段,然后运行一个宏,根据该日期修改所选日期。e、 g.在单元格A1中输入“11/11”,对于某些表格,只勾选11月4日至10日的日期范围复选框,对于其他表格,只勾选10月28日至11月3日的日期范围复选框。然后

如何在数据透视表的报告过滤器中自动检查/取消检查日期

我有一个数据透视表,需要根据日期范围(过去七天、过去七天)从中提取数据。电子表格有多个数据透视表,为每个数据透视表单击无数复选框(年、季度、月、每天、取消选中前几天、在下拉列表中调整大小和滚动)的过程令人抓狂

我希望有一个包含日期的字段,然后运行一个宏,根据该日期修改所选日期。e、 g.在单元格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”等。。。然后构建一个长字符串(包含“日”行)。但是,我无法使用结果,除非将它们粘贴到宏中(粘贴在前一周的文本块上)。这会导致大量复制和粘贴,同时担心覆盖错误的透视表。这比手动选中和取消选中框要好,但仍然不好


我正在使用Excel 2010。注意:我在《超级用户》中问过这个问题,但没有收到任何回复。

虽然我无法深入了解解决这个问题的VBA解决方案,但我确实找到了一个应该同样快速使用(并且更快实施)的替代方案

切片机

通过添加两个切片器(过去两周中每一个切片器),我可以通过单击和拖动来选择日期范围。一个添加到工作表中,它们就可以连接到多个透视表,甚至可以分布在多个工作表上。它们还可以设置颜色格式,以匹配它们所连接的数据透视表

注意:如果有人对VBA解决方案有任何建议,我仍然希望看到他们

从Microsoft网站:

我需要每日数据(即生成一个显示一周中每天数据的图表)。此外,按周分组在报告筛选器中不可用。据我所知,它仅在行标签中可用。