自动运行模块

时间:2015-01-10 23:04:18

标签: excel vba excel-vba pivot-table

我在我的一个文件中运行此模块。它运作良好,它可以满足需要。但是,每次我需要它时,每次运行它都会很痛苦。是否有任何方法可以在每次刷新数据透视表或每次更改工作表时自动运行它?

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

1 个答案:

答案 0 :(得分:1)

"每次工作表更改" ...

点击你的VBE,点击"你的表格"并将代码添加到事件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

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