标签:VBA
Excel一直在改进自动筛选功能。可能和许多开发人员一样,当设置了条件,Excel为你进行数据筛选时,Excel会进行循环。当需要在数千行中循环时,此方法就会出现的问题,大大减慢你的过程。相比之下,在VBA中使用自动筛选速度非常快,小列表和大列表之间的时间差可以忽略不计。同时,Excel引入了按图标集筛选的功能,即单元格中显示的条件格式彩色箭头或图表指示器,如下图1所示。
图1
此时,可以基于图标集筛选,实际上相当简单。示例代码如下:
代码语言:javascript复制'红色箭头
Sub RedDownArrow()
[K10:K100].AutoFilter 1, ThisWorkbook.IconSets(1).Item(1), xlFilterIcon
End Sub
'黄色箭头
Sub YellowAcrossArrow()
[K10:K100].AutoFilter 1, ThisWorkbook.IconSets(1).Item(2), 10
End Sub
'绿色箭头
Sub GreenUpArrow()
[K10:K100].AutoFilter 1, ThisWorkbook.IconSets(1).Item(3), 10
End Sub
Sub ClearIt()
ActiveSheet.AutoFilterMode = False
End Sub
IconSets(1)与上图1所示的箭头图片相关,仅适用于此图标集。如果试图将此代码改编为外观不同的图标集,则需要获取与使用的图标集相关的索引号。VBA代码-Item(1)与红色向下箭头相关,(2)与黄色箭头相关,(3)与绿色箭头相关。
过程效果如下图2所示。
图2
下面是另一组图标集示例。
图3
该图标集的编号是5,相应的VBA代码如下:
Sub RedDownArrowV2() '红色
[K10:K100].AutoFilter 1, ThisWorkbook.IconSets(5).Item(1), xlFilterIcon
End Sub
注:本文学习整理自thesmallman.com,有兴趣的朋友可以到该网站下载示例工作簿,也可以到知识星球App完美Excel社群下载示例工作簿。