当Excel(2010)电子表格中的数据发生变化时,是否有人知道VBA代码会自动刷新所有数据透视表(每张数据表包含4个数据透视表)?它还可以搜索特定单元格中的更改。
欢迎任何建议!
答案 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