【发布时间】:2017-07-06 07:46:20
【问题描述】:
我正在尝试从值的引用列表中过滤一张工作表上的多个数据透视表,但看起来它只处理第一个 With 语句 (CampaignAnalysis) 然后它返回一个错误 (MailCount)。对此的任何帮助都会很棒!谢谢!
Sub Test()
Dim PI As PivotItem
With Worksheets("In Focus - Campaign Analysis").PivotTables("CampaignAnalysis").PivotFields("Campaign Code")
.ClearAllFilters
For Each PI In .PivotItems
PI.Visible = WorksheetFunction.CountIf(Range("CA_Range1"), PI.Name) > 0
Next PI
End With
Dim MC As PivotItem
With Worksheets("In Focus - Campaign Analysis").PivotTables("MailCount").PivotFields("MailCount_CC")
.ClearAllFilters
For Each MC In .PivotItems
MC.Visible = WorksheetFunction.CountIf(Range("CA_Range1"), MC.Name) > 0
Next MC
End With
End Sub
【问题讨论】:
-
使用此过滤器确保至少有一个 MC 可见。可能发生的情况是,当您的代码尝试隐藏列表中的最后一项时,它会遇到错误。如果不自己运行代码,这是我最好的猜测。
-
感谢布兰登的反馈。我设法让它工作,所以我很欣赏这种洞察力。我目前遇到的当前问题是尝试更新一个数据透视表中的两个字段。这两个字段是一个范围(有效),但第二个字段是引用回另一个计算单元格的日期
-
所以在这里,“Segment”中有另一个 PivotFields,称为“ReportDate”,我试图引用此工作表上的计算日期单元格,例如A1 但无法使代码正常工作。如何将第二个 PivotField 集成到代码中?
-
整个代码在下面 & where (****) 我想输入新代码,即“ReportDate”PivotField 是“Segment”数据透视表中的第二个过滤器
标签: excel vba filtering pivot-table