数据更改时,在Excel电子表格中刷新所有数据透视表

有没有人知道Excel(2010)电子表格中的数据改变时,VBA代码自动刷新所有的数据透视表(2张,每张持有4个数据透视表)? 它也可以search特定单元格中的更改。

任何build议,欢迎!

如果您的数据透视表在整个工作簿中设置了绝对范围,那么我简单介绍一下:

Sub RefreshAllPivots() ' RefreshAllPivots Macro ' Refresh all the pivots in the workbook ActiveWorkbook.RefreshAll End Sub 

此代码添加到包含源数据的工作表应该工作

Private Sub Worksheet_Change(ByVal Target As Range) Dim Sheet As Worksheet, Pivot As PivotTable For Each Sheet In ThisWorkbook.Worksheets For Each Pivot In Sheet.PivotTables Pivot.RefreshTable Pivot.Update Next Next End Sub

欲了解更多信息,请查看http://msdn.microsoft.com/en-us/library/office/ff839775(v=office.15).aspx

如果数据表中的数据名为“data”,而表格位于数据表“pivot”中,并且名为“PivotTable1”,则可以将其粘贴到数据表vba选项卡上。

 Private Sub Worksheet_Calculate() 'If data on this worksheet changes, refresh the pivot table Sheets("Pivot").PivotTables("PivotTable1").RefreshTable End Sub