gpt4 book ai didi

vba - 当单元格中的值发生变化时,更改数据透视表上的过滤器

转载 作者:行者123 更新时间:2023-12-03 03:00:10 33 4
gpt4 key购买 nike

我已经阅读了一段时间并达到了询问点。我在 Excel 中有一个下拉选择器,可以让我更改名称,当名称更改时,“C3”中的值会更改(如果重要的话,c3 会引用另一张工作表上的另一个单元格),当“C3”中的值更改时我希望另一张工作表(目前为工作表 6)上的数据透视表更新其对区域 id 的过滤器,以反射(reflect)“C3”的新值。

这对我来说听起来像是一个事件,所以我四处挖掘并发现 VBA 有事件(耶!),但我一直无法让我的事件真正执行任何操作。当我将其作为宏运行时,我那里的代码可以工作,但我真的希望它能够在每次单元格“C3”中的值发生变化时自动运行。

这是我到目前为止正在尝试的:

 Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Sheets("Current Status").Range("C3")) Is Nothing Then
Sheets("Sheet6").PivotTables("PivotTable5").PivotFields("territory_id"). _
ClearAllFilters
Sheets("Sheet6").PivotTables("PivotTable5").PivotFields("territory_id").CurrentPage _
= Sheets("Current Status").Range("C3").Value
End If
End Sub

更新:我发现,如果我将上述代码放在工作表部分(工作表 2)而不是新模块中,如果我实际输入代码然后按 Enter 键,我就可以让它运行。现在我想知道是否有一种方法可以让它做到这一点,而无需我手动输入值并按回车键。我只是希望能够使用下拉菜单选择一个新名称,并且当 c3 中的值由于下拉选择器而发生变化时更新数据透视表。

一如既往地感谢您。

最佳答案

问题是 C3 实际上并没有改变,因为它只是更新了公式引用。 “下拉选择器”是在表单上还是基于数据验证并在单元格中?

如果它基于单元格,请将目标设置为目标单元格,而不是 C3 -> 因为 C3 只是一个公式引用,而您的下拉单元格是实际发生变化的单元格。

如果是基于表单,但在表单控件的on_change事件中编码。

关于vba - 当单元格中的值发生变化时,更改数据透视表上的过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340434/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com