如果对特定列进行更改,VBA会刷新数据透视表。

问题描述 投票:0回答:1

我没有VBA的背景,但我在隔离期间一直在自学SQL和Power Query M。

我有以下我找到的代码,如果工作表上有任何变化,将刷新Pivot表。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
  ActiveSheet.PivotTables("PromoList").RefreshTable
Application.EnableEvents = True

End Sub

问题是,工作表有很多其他字段,我将进行编辑,但由于代码适用于整个工作表,当我在任何地方进行任何更改时,我失去了撤销错误的能力,这可能会让我退回不少。

数据透视表的数据只包含在一列(A)中。

有没有办法更新代码,只引用A列,这样我就不会失去Undo功能?我可以进一步在A列中指定一个范围吗?

excel vba pivot-table refresh
1个回答
1
投票

这将触发刷新,只有当你做了改变任何地方的列A

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo EH

    Application.EnableEvents = False

    If Target.Column = 1 Then
        ActiveSheet.PivotTables("PromoList").RefreshTable
    End If

EH:
    Application.EnableEvents = True

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.