使用筛选值在宏中创建数据透视表

时间:2014-10-16 22:08:45

标签: excel excel-vba pivot vba

我正在开发一个自动运行的宏,它将创建包含报告过滤条件的新表。我有5个过滤标准So Cal,Chicago,Georgia,Ohio和Texas。我现在设置它的方法是复制数据透视表,只是添加一个新的过滤器值。在下面的代码中,我只是将“Chicago”更改为“Texas”以获取下一个数据透视表。问题是并非所有过滤条件都将始终存在于数据中。它的设置方式是它将创建一个包含数据表中所有数据的数据透视表。如果值不在过滤条件中,或者只是将数据透视表留空,则有两个选项我不希望它创建数据透视表。

Sheets("Sheet3").Name = "So Cal Summary"
Range("B35").Select
Sheets("So Cal Summary").Select
Sheets("So Cal Summary").Copy Before:=Sheets(2)
Sheets("So Cal Summary (2)").Select
Sheets("So Cal Summary (2)").Name = "Chicago Summary"
ActiveSheet.PivotTables("PivotTable5").PivotFields("Pool").CurrentPage = _
    "CHICAGO"

这可能不是正确的编码方式。我使用宏录制来获取此代码。我没有编码背景,但可以完成录制宏然后进行操作。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Show Report Filter Pages...

这可以在数据透视表工具>下找到。选项>选项(下拉)>显示报告过滤页面...

这将为“过滤器”中的每个“页面”生成一个新选项卡。另一种选择是使用Slicers。