【发布时间】:2017-07-17 13:58:07
【问题描述】:
我需要在 Excel 工作表上控制一个简单的列上的自动过滤器。
经过研究,似乎在更改此类过滤器时不会触发特定事件。所以这里唯一想到的事件是.Calculate 事件,但我不确定这在这里是否可靠。
作为替代方案,有没有一种方法可以计算特定过滤器中有多少项目已被选中?
在我的情况下,我只需要在过滤器(但不是全部)中捕获 如果超过 1 个项目被选择。
因为我似乎无法阻止或限制这一点,所以我会至少想显示一条警告消息。
有人可以帮我吗?
我的过滤器数据:
Worksheets(1).Range("$C$1:$C$100").AutoFilter Field:=1
非常感谢,
迈克
【问题讨论】:
-
使用
=subtotal(103, $C$2:$C$100)如果没有值显示计数将为零;否则为可见值的数字计数。 -
@Jeeped:谢谢,但这对我没有帮助,因为在我的情况下,相同的值可以在此列中出现多次。我需要知道过滤器下拉列表中是否选择了超过 1 个项目(如果我无法阻止)。
-
然后使用聚合代替。
标签: vba excel filter autofilter