自动运行一个模块

我有这个模块在我的一个文件中运行。 它运作良好,它做它需要的。 然而,每当我需要它发生的时候,手动运行它是一种痛苦。 每当数据透视表刷新或每次表单更改时,是否有办法自动运行它?

Sub CopyValuesAndNumberFormats() 'Update 20130815 Dim CopyRng As Range, PasteRng As Range xTitleId = "HeatMapUpdateSP" Set CopyRng = Application.Selection Set CopyRng = Range("D2:G4") Set PasteRng = Range("D11:G13") CopyRng.Copy PasteRng.Parent.Activate PasteRng.PasteSpecial xlPasteValuesAndNumberFormats PasteRng.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub 

“每次换单”…

从你的VBE中,点击“YourSheet”并将代码添加到事件Worksheet_Change 。 它看起来像这样:

 Private Sub Worksheet_Change(ByVal Target As Range) YourModule.CopyValuesAndNumberFormats End Sub 

“每次数据透视表更新”…

相同的逻辑,但与工作表中的不同事件:

 Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) YourModule.CopyValuesAndNumberFormats End Sub 

注意:您可能需要将这两个私有macros添加到您希望代码执行的每个工作表中。