就像标题所说的那样,如果选择了另一个,我试图禁用或将对立过滤器默认为“全部”。
例如,我有一个带有两个过滤器的数据透视表 - “WEEK”和“MONTH”
如果有人在周过滤器中选择了一个值,我希望月过滤器默认为“(全部)”,反之亦然。
非常简单,但我不确定如何攻击这个(VBA或公式)以及代码。
谢谢你们!
答案 0 :(得分:0)
不幸的是,没有任何事件可以追踪可转换的字段变化。因此,我的想法如下。 步骤1.放置公共变量:
Public tmpM As Boolean
Public tmpW As Boolean
步骤2.在放置枢轴表的工作表模块中,输入以下代码:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
On Error GoTo ErrorHandler
Application.EnableEvents = False
If Target.PivotFields("week").AllItemsVisible = False And tmpW = True Then
Target.PivotFields("month").ClearAllFilters
End If
If Target.PivotFields("month").AllItemsVisible = False And tmpM = True Then
Target.PivotFields("week").ClearAllFilters
End If
tmpM = Target.PivotFields("month").AllItemsVisible
tmpW = Target.PivotFields("week").AllItemsVisible
Application.EnableEvents = True
Exit Sub
ErrorHandler:
Application.EnableEvents = True
End Sub
它适用于我的示例数据。
上面代码中的编辑:错误处理。