单元格更改时刷新数据透视表

时间:2018-04-01 22:17:24

标签: vba excel-vba excel

我需要在修改某些单元格时刷新数据透视表。我写的是以下内容:

Sub Worksheet_Change(ByVal Target As Range)

    Dim KeyCells As Range

    Set KeyCells = Worksheets("Dashboard").Range("C3:C6")

    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then

        Worksheets("Pivot_Graf").PivotTables("PivotTable12").PivotCache.Refresh   

    End If

End Sub

我哪里错了?

1 个答案:

答案 0 :(得分:0)

如果您将代码放在工作表(" Dashboard")代码窗格中,就像您要查找的目标位于keycells范围内的交叉点一样,以下内容应该有效。您不需要Target.Address作为范围对象与KeyCells进行比较。

Option Explicit

Sub Worksheet_Change(ByVal Target As Range)

    Dim KeyCells As Range

    Set KeyCells = Range("C3:C6")

    If Not Application.Intersect(KeyCells, Target) Is Nothing Then

        Worksheets("Pivot_Graf").PivotTables("PivotTable12").PivotCache.Refresh

    End If

End Sub

注意:如果放在正确的窗格中,您也可以删除

Worksheets("Dashboard").

前面的

Set KeyCells =  Worksheets("Dashboard").Range("C3:C6")