内部数据发生变化时自动刷新数据透视表

内部数据发生变化时自动刷新数据透视表

我有一张包含一些数据的工作表(sheet1),还有一张包含数据透视表的工作表(sheet2)。

如何确保在更新 Sheet1 中的数据时 Sheet2 数据透视表也会更新?
a. 如何确保自动更新,否则
b. 如何手动刷新数据透视表以使用最新数据

我所知道的是,我可以选择“打开文件时刷新数据”,但我不想打开和关闭文件。

短暂性脑缺血发作

答案1

a. 如何确保自动更新?

我认为,当您的数据透视源位于同一工作簿中时,这是不可能的。对于外部的您可以设置数据源刷新频率X分钟。

b. 如何手动刷新数据透视表以使用最新数据?

当活动单元格位于数据透视表中时,您将拥有刷新选项可用数据透视表工具 | 选项在功能区栏上。

答案2

您可以使用 VBA 和数据工作表中的 WorksheetChange 或 WorksheetCalculate 事件来更新数据透视表。我在 Google 上搜索了这个问题,但没有找到我记得的详细讨论,所以这里有一个简短的例子。如果您只是在数据表上手动更改数据,那么您只需要 WorksheetChange 事件,但如果数据来自其他工作表或工作簿,则需要 Calculate 事件:

Private Sub Worksheet_Calculate()
Call RefreshPT
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Call RefreshPT
End Sub

Sub RefreshPT()
Sheet1.PivotTables(1).PivotCache.Refresh
End Sub

相关内容