Excel如何設置動態求和 Excel設置動態求和方法
965
2022-06-01
隨著輸入文本的逐步增多,供選擇的條目會逐漸自動減少,直至精確匹配,如下圖1所示。
圖1
其實,實現上述效果的過程很簡單。
將數據放置在工作表Sheet1的列A中,如圖2所示。
圖2
創建動態的名稱Data,如圖3所示。
圖3
在VBE中,創建一個如圖4所示的用戶窗體,上方用于輸入的文本框命名為txtFind,下方用于顯示的列表框命名為lbxData。
圖4
在用戶窗體模塊中,輸入代碼:
'完美Excel 創建
'微信公眾號: 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
說明:
在文本框中輸入內容時,VBA會即時將輸入的內容和列表框中的數據進行比較,并移除不匹配的數據。
也可以在代碼中使用VBA的Filter函數,達到同樣的效果:
'完美Excel 創建
PrivateSub txtFind_Change()
Me.lbxData.List =Filter(SourceArray:=Application.Transpose([Data]), _
Match:=txtFind.Value, _
Include:=True, _
Compare:=vbTextCompare)
EndSub
擴展
收集用戶輸入的數據:如果用戶輸入的數據不在已有列表中,那么可以將該數據自動放置到列表中,這樣,再次輸入時就會出現該數據
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。