vba代码判断某列有没有筛选过(下拉列表框自动筛选的方法)

Excel VBA提供了许多控件,同时也可以自定义控件,控件中有些功能已经可以完成大部分操作,本文介绍一个十分实用的功能属性,我来为大家讲解一下关于vba代码判断某列有没有筛选过?跟着小编一起来看一看吧!

vba代码判断某列有没有筛选过(下拉列表框自动筛选的方法)

vba代码判断某列有没有筛选过

Excel VBA提供了许多控件,同时也可以自定义控件,控件中有些功能已经可以完成大部分操作,本文介绍一个十分实用的功能属性。

如何,在下拉列表中自动筛选出想要的选项?

下拉列表框是一个应用很普遍的控件,任意语言都会用到这样的模式。

在实际应用场景当中,会遇到相似或部分相同内容的选项,在选择这些项目的时候,如果自动把需要的内容提取出来那么就会提高操作效率。

依据实际要求,VBA给出的ComboBox控件和ListBox控件一个属性MatchEntry可以实现这样的功能。

语法如下图所示:

语法:

ComboBoxObject.MatchEntry [= fmMatchEntry ]

其中ComboBoxObject是一个对象,是ComboBox或者ListBox对象。

fmMatchEntry 的设置为:

常量

说明

fmMatchEntryFirstLetter

0

基本匹配。 控件搜索输入的字符开头的下一个项。 重复键入同一字母将循环显示该字母开头的所有项。

FmMatchEntryComplete

1

扩展匹配。 在键入每个字符时,控件将搜索与输入的所有字符匹配的项(默认)。

FmMatchEntryNone

2

无匹配。

上述值可以区别,如何对下拉列表值进行搜索。

当值为0,则重复搜索相同字母,也就是把开头为第一个输入值的项目循环搜索出来。

当值为1,可以输入多个字母以匹配相应的项目。

值为2,不做匹配搜索。

重点:

其搜索结果有一个默认事件。

当搜索到相应匹配结果的时候,会触发控件的Click事件。

这一点才是其根本应用的关键,也就是说当我样输入一个字符,匹配到相应列表项之后,自动把列表值设定的匹配项,然后触发Click事件。

当然了,Click事件可以编写我们想要处理的过程或函数。

这就是MatchEntry属性的功能所在。

注意:

还有一些相应的属性需要配合设置,不然MatchEntry还是不能够正确的达到我们的目的。

控件将搜索与由用户键入的项匹配的项的 TextColumn 所标识的列。 在找到一个匹配项时,将选择包含该匹配项的行,显示列的内容,并且其 BoundColumn 属性的内容将变为控件的值。 如果匹配是明确的,则查找匹配将启动 Click 事件。

要设置TextColumn属性,表示在列表控件的哪一列进行匹配搜索。

BoundColumn属性同样也要设置正确,表示匹配之后显示到控件里的内容是列表的哪一列。

这两个属性设置错误,那么将不会看到想要的结果。

代码

Private Sub UserForm_Activate() With Me.ComboBox1 .List = Array("12345", "this is a list", "昨夜西风雕碧树", "126", "288", "168") .MatchEntry = fmMatchEntryComplete'扩展匹配 .TextColumn = 1 .BoundColumn = 1 End With With Me.ComboBox2 .List = Me.ComboBox1.List .MatchEntry = fmMatchEntryFirstLetter'基本匹配 .TextColumn = 1 .BoundColumn = 1 End With End Sub

MatchEntry属性本身有默认属性,所以初学者不会考虑太多,对于要掌握更深层次的内容,学会精确编写各类应用功能的需求,还是要从各控件的细节进行研究为好。

欢迎关注、收藏

---END---

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页