我没有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列中指定一个范围吗?
这将触发刷新,只有当你做了改变任何地方的列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