每次选择切片器中的选择时运行代码

时间:2016-04-25 13:13:50

标签: excel vba

希望得到一些指导。每次在excel切片器中选择新选择时,我想在工作表中运行现有代码。我是新手代码,所以如果有人回复,请具体说明我放置代码的位置。见下文。代码的最后一部分是我尝试运行代码,如果进行了新的选择,但它不起作用并返回错误。

    Sub ConditionalFormatting()

End Sub


Set a = Sheets("Pivot")

i = 6 'row
j = 6 'column
Do Until a.Cells(4, j) = "Grand Total" 'tells code to continue the code until it finds Grand Total
    j = j + 1
Loop
j = j - 1
vArr = Split(Cells(1, j).Address(True, False), "$")
a.Cells(1, 15) = vArr
Do Until a.Cells(i, 5) = ""
    a.Range("F" & i & ":" & a.Cells(1, 15).Value & i).Select
    Selection.FormatConditions.AddColorScale ColorScaleType:=3
    i = i + 1
Loop
a.Cells(1, 15) = ""



Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
    Application.Run ("'Top 95 Data Update.xlsb'!ConditionalFormatting")


End Sub

1 个答案:

答案 0 :(得分:0)

没有事件与切片器相关联。因此,当切片器被更改时,您无法捕获事件"直。您可以在VBE中查看可以在Excel中捕获的所有事件。只需按F2,然后搜索您可能想要捕获事件的项目。然后查找标有闪光灯的项目。这些是(示例)您可能用于工作表的事件:

List of potential worksheet events to capture

您可以在此处看到切片器没有可用的事件:

List of events available for slicers

唯一的可能性是 - 根据您更改的过滤器(使用切片器) - 基础表将更改,从而工作表更改事件将触发。