2016-04-25 72 views
0

希望得到一些指导。每次在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 

回答

0

链接到切片机没有事件。因此,您无法直接捕获“切片机更换时”事件。您可以在VBE中看到可以在Excel中捕获的所有事件。只需按F2,然后搜索您可能想要捕获事件的项目。然后查找标有闪光灯的项目。它们是:(例子),你有可能使用工作表的事件:

List of potential worksheet events to capture

在这里你可以看到有没有可用的事件,对于切片:

List of events available for slicers

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