如何从excel加载项中捕获excel文件中的PivotTableUpdate事件?

时间:2013-07-26 12:25:58

标签: excel vba excel-vba

我有一个加载项,用于处理特定excel文件中的数据以生成数据透视表。我需要在更新数据透视表时从这个加载项运行一段代码。

我想知道如何捕获此事件并从加载项触发操作。

我在其他网站上看到过关于它的讨论,但不幸的是我无法理解它们。如果可能的话,请帮我举个例子。

2 个答案:

答案 0 :(得分:0)

如果我理解您的问题,请在加载项代码中添加:

Dim WithEvents pivotsheet as Worksheet

...
'Somewhere in your code...
    Set  pivotsheet = ...
...

Private Sub pivotsheet_PivotTableAfterValueChange(ByVal TargetPivotTable As PivotTable, ByVal TargetRange As Range)
    'Action
End Sub

答案 1 :(得分:0)

我设法使用以下代码执行此操作。

以下代码已添加到加载项的ThisWorkbook对象

Dim RTMApp As New RTMEvents

Private Sub Workbook_Open()
    Set RTMApp.RTM_App = Application
End Sub

然后我将以下代码添加到名为“RTMEvents”

的新类中
Public WithEvents RTM_App As Application

Private Sub RTM_App_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
    Code.DoPercentageCalculation '(calling the macro to execute)
End Sub