使用VBA基于图标集进行筛选

2022-11-16 12:58:58 浏览数 (1)

标签: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社群下载示例工作簿。

vba

0 人点赞