当源 Table 包含公式时,使用 VBA 自动刷新数据透视表 Table
Auto-Refresh Pivot Table with VBA, when Source Table contains Formulas
我的目标是 Pivot Table
在我对源数据进行更改时自动更新。 "normal" 论坛中讨论的代码(见下文)不起作用。
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Pivot").PivotTables("Test").PivotCache.Refresh
End Sub
我的设置如下:
在名为 "Overview" 的选项卡中,我有数字 (%),我想调整以测试不同的场景。
在选项卡 "Constituents" 中,我有我的 table(称为 "Input"),它是我的 Pivot Table 的基础。每当我更改选项卡 "Overview" 中的百分比时,此 table 中的数字都会发生变化(显然 table 中的数字是用公式生成的)。
在选项卡 "Pivot" 中,我的 Pivot Table 名为 "Test"。
我已经使用上述代码试过运气。如果我覆盖 table 中的公式,数据透视表会自动更新。这意味着代码适用于该场景。
但是:如果 table 中的数字因公式而发生变化(意味着选项卡 "Overview" 发生变化),我的数据透视表 Table 不会更新。
有人知道解决这个问题的方法吗?非常感谢!
我认为您必须在 "Constituents" 和 "Overview"
的两个工作表中添加 Worksheet_Change 函数
我的目标是 Pivot Table
在我对源数据进行更改时自动更新。 "normal" 论坛中讨论的代码(见下文)不起作用。
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Pivot").PivotTables("Test").PivotCache.Refresh
End Sub
我的设置如下:
在名为 "Overview" 的选项卡中,我有数字 (%),我想调整以测试不同的场景。
在选项卡 "Constituents" 中,我有我的 table(称为 "Input"),它是我的 Pivot Table 的基础。每当我更改选项卡 "Overview" 中的百分比时,此 table 中的数字都会发生变化(显然 table 中的数字是用公式生成的)。
在选项卡 "Pivot" 中,我的 Pivot Table 名为 "Test"。
我已经使用上述代码试过运气。如果我覆盖 table 中的公式,数据透视表会自动更新。这意味着代码适用于该场景。
但是:如果 table 中的数字因公式而发生变化(意味着选项卡 "Overview" 发生变化),我的数据透视表 Table 不会更新。
有人知道解决这个问题的方法吗?非常感谢!
我认为您必须在 "Constituents" 和 "Overview"
的两个工作表中添加 Worksheet_Change 函数