有没有一种方法可以在每次选择切片器时运行宏?目前我正在使用按钮来运行宏。我找到了讨论在表更改或更新上运行宏的论坛,但由于表中的数据实际上没有改变,所以它们不起作用。以下是我已经尝试过的内容
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim n As Integer
n = Application.WorksheetFunction.CountIf(Range("tbl_clients1[visible]"),
"1")
If (n) = 1 Then
Sheets("clientlist").CommandButton2.Visible = True
Else
Sheets("clientlist").CommandButton2.Visible = False
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim n As Integer
n = Application.WorksheetFunction.CountIf(Range("tbl_clients1[visible]"),
"1")
If (n) = 1 Then
Sheets("clientlist").CommandButton2.Visible = True
Else
Sheets("clientlist").CommandButton2.Visible = False
End If
End Sub
答案 0 :(得分:1)
我在我的一个项目中做了类似的事情。这是我的方法。
因为表切片器没有关联的事件处理程序,所以我从表中创建一个数据透视表,只将感兴趣的字段放在其中并将其隐藏在某处(通常是另一个工作表),添加数据透视表切片器并将其放入要筛选的表,然后捕获作为结果触发的PivotTable_Update事件。然后我迭代数据透视表切片器的可见项,并使用它在隐藏的表切片器中设置过滤器,并且还触发我想要运行的宏。效果很好。
这与我在How to run a macro when a Filter is applied on Particular Pivot Field
的答案类似