我需要在修改某些单元格时刷新数据透视表。我写的是以下内容:
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
我哪里错了?
答案 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")