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
当然,如果值在列中出现多次,可能会显示更多的行。