tft每日頭條

 > 科技

 > vba代碼判斷某列有沒有篩選過

vba代碼判斷某列有沒有篩選過

科技 更新时间:2025-02-03 10:58:35

vba代碼判斷某列有沒有篩選過?Excel VBA提供了許多控件,同時也可以自定義控件,控件中有些功能已經可以完成大部分操作,本文介紹一個十分實用的功能屬性,我來為大家講解一下關于vba代碼判斷某列有沒有篩選過?跟着小編一起來看一看吧!

vba代碼判斷某列有沒有篩選過(下拉列表框自動篩選的方法)1

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---

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved