Excel-VBA:检查列filter中select了多less个项目(或限制select)

我需要控制Excel工作表上一列的简单自动filter

经过研究,似乎没有任何特定的事件发生,当这样一个filter被改变。 所以这里想到的唯一事件就是.Calculate事件,但我不确定这里是否可靠。

作为替代方法,是否有一种方法可以统计特定筛选器中已select了多less项?
在我的情况下,我只需要捕获如果在filter(但不是全部)中select多个项目
既然看来我不能阻止或者限制这个,那么我至less会显示一个警告信息

有人可以帮我弄这个吗 ?

我的过滤数据:

 Worksheets(1).Range("$C$1:$C$100").AutoFilter Field:=1 

提前谢谢了,
麦克风

有了这样的数据:

在这里输入图像说明

您可以select一些项目,如:

 Sub Macro1() ActiveSheet.Range("$A$1:$A$23").AutoFilter Field:=1, Criteria1:=Array( _ "Belinda", "Cordelia", "Darth Vader"), Operator:=xlFilterValues End Sub 

一旦项目被macros或手动select,您可以显示所选数字的数量:

 Sub HowMany() MsgBox UBound(ActiveSheet.AutoFilter.Filters.Item(1).Criteria1) End Sub 

在这里输入图像说明

当然,如果值在列中出现多次,可能会显示更多的行。