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

时间:2014-11-18 15:31:42

标签: excel pivot excel-2010 pivot-table

当Excel(2010)电子表格中的数据发生变化时,是否有人知道VBA代码会自动刷新所有数据透视表(每张数据表包含4个数据透视表)?它还可以搜索特定单元格中的更改。

欢迎任何建议!

3 个答案:

答案 0 :(得分:2)

如果您的数据透视表在整个工作簿中设置了绝对范围,我就是这种简单方法的粉丝:

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

答案 1 :(得分:1)

此代码添加到包含源数据的工作表中应该可以正常工作

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

答案 2 :(得分:1)

如果表格中有数据名为"数据"并且表格在表格中,#34; pivot"使用名为" PivotTable1"的表,您可以将其粘贴到数据表vba选项卡上。

Private Sub Worksheet_Calculate()

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

End Sub