亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標(biāo)——亞洲寵物展覽會(huì)深度解析
790
2025-04-02
Excel 實(shí)現(xiàn)智能輸入精確匹配 讓可供選擇的條目自動(dòng)減少(excel中如何拆分單元格)
隨著輸入文本的逐步增多,供選擇的條目會(huì)逐漸自動(dòng)減少,直至精確匹配,如下圖1所示。
圖1
其實(shí),實(shí)現(xiàn)上述效果的過(guò)程很簡(jiǎn)單。
將數(shù)據(jù)放置在工作表Sheet1的列A中,如圖2所示。
圖2
創(chuàng)建動(dòng)態(tài)的名稱Data,如圖3所示。
圖3
在VBE中,創(chuàng)建一個(gè)如圖4所示的用戶窗體,上方用于輸入的文本框命名為txtFind,下方用于顯示的列表框命名為lbxData。
圖4
在用戶窗體模塊中,輸入代碼:
'完美Excel 創(chuàng)建
'微信公眾號(hào): excelperfect
PrivateSub txtFind_Change()
Dim i As Long
Dim strFind As String
strFind = "*" &UCase(Me.txtFind.Text) & "*"
With Me.lbxData
.List = Application.Transpose([Data])
For i = .ListCount - 1 To 0 Step -1
If Not UCase(.List(i)) Like strFindThen
.RemoveItem i
End If
Next i
End With
EndSub
說(shuō)明:
在文本框中輸入內(nèi)容時(shí),VBA會(huì)即時(shí)將輸入的內(nèi)容和列表框中的數(shù)據(jù)進(jìn)行比較,并移除不匹配的數(shù)據(jù)。
也可以在代碼中使用VBA的Filter函數(shù),達(dá)到同樣的效果:
'完美Excel 創(chuàng)建
PrivateSub txtFind_Change()
Me.lbxData.List =Filter(SourceArray:=Application.Transpose([Data]), _
Match:=txtFind.Value, _
Include:=True, _
Compare:=vbTextCompare)
EndSub
擴(kuò)展
收集用戶輸入的數(shù)據(jù):如果用戶輸入的數(shù)據(jù)不在已有列表中,那么可以將該數(shù)據(jù)自動(dòng)放置到列表中,這樣,再次輸入時(shí)就會(huì)出現(xiàn)該數(shù)據(jù)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。