国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
仿Google輸入框——快速查找列表框中的項目
在使用Google搜索時,一般我們會在輸入框中輸入想要搜索的文本,此時下方會出現(xiàn)相關(guān)條目供選擇,以方便快速輸入。下面,我們在Excel用戶窗體中使用文本框和列表框來仿造這樣的效果。
有時,當(dāng)用戶窗體中的列表框包含大量的項目時,我們必須拖動其滾動條來查找相應(yīng)的項目。此時,可以利用一些技巧快速找到所需的項目。
如圖1所示,在用戶窗體中,放置有兩個控件,上方是一個名為txtFind的文本框,下方是一個名為lbxData的列表框,列表框的數(shù)據(jù)來自工作表Data的列A中的數(shù)據(jù)。

圖1:帶有文本框和列表框的用戶窗體,列表框中的數(shù)據(jù)來自Data工作表中的A列
當(dāng)我在上方的文本框txtFind中輸入“excel vba”后,下方的列表框lbxData中將會只出現(xiàn)包含有“excel vba”的條目,如圖2所示。

圖2:在文本框中輸入文本后,列表框中只出現(xiàn)包含該文本的條目
實現(xiàn)上述效果的VBA代碼如下:
Option ExplicitDim varData Private Sub txtFind_Change()Dim i As LongDim strFind As String strFind = "*" & UCase(Me.txtFind.Text) & "*" With Me.lbxData.List = varDataFor i = .ListCount - 1 To 0 Step -1If Not UCase(.List(i)) Like strFind Then.RemoveItem iEnd IfNext iEnd WithEnd Sub Private Sub UserForm_Initialize()Dim lLast As LongDim rng As Range lLast = Sheet1.Range("A" & Cells.Rows.Count).End(xlUp).RowvarData = Sheet1.Range("A1:A" & lLast) Me.lbxData.List = varDataEnd Sub

我們可以將UserForm_Initialize代碼塊中的代碼Me.lbxData.List = varData刪除,這樣當(dāng)在文本框txtFind中輸入時,只要輸入的數(shù)據(jù)符合列表框包含的數(shù)據(jù),列表框中將自動出現(xiàn)相關(guān)條目并隨著輸入的進一步具體條目相應(yīng)減少至完全匹配輸入的數(shù)據(jù),如圖3、4、5所示。


圖3:初始化后的用戶窗體

圖4:開始輸入后,列表框中的條目隨著文本框中輸入的數(shù)據(jù)而變化

圖5:文本框中的數(shù)據(jù)越具體,列表框中的條目也越少且與文本框輸入相匹配
在Excel 2000及以后的版本中,VBA提供了一個Filter函數(shù),使用該函數(shù),也能實現(xiàn)上述效果,并且代碼更簡單。代碼如下:

Option ExplicitPrivate Sub txtFind_Change()Dim varData As Variant varData = Range("A1", Cells(Rows.Count, 1).End(xlUp)).ValuevarData = Application.Transpose(varData) varData = Filter(SourceArray:=varData, _Match:=txtFind.Value, _Include:=True, _Compare:=vbTextCompare) Me.lbxData.List = varData End Sub Private Sub UserForm_Initialize() Me.lbxData.List = Range("A1", Cells(Rows.Count, 1).End(xlUp)).ValueEnd Sub

如果需要將列表框中所選擇的條目放到文本框中,那么添加下面的代碼:

Private Sub lbxData_Click()Me.txtFind.Value = Me.lbxData.ValueEnd Sub

示例文檔下載:
在使用Google搜索時,一般我們會在輸入框中輸入想要搜索的文本,此時下方會出現(xiàn)相關(guān)條目供選擇,以方便快速輸入。下面,我們在Excel用戶窗體中使用文本框和列表框來仿造這樣的效果。
有時,當(dāng)用戶窗體中的列表框包含大量的項目時,我們必須拖動其滾動條來查找相應(yīng)的項目。此時,可以利用一些技巧快速找到所需的項目。
如圖1所示,在用戶窗體中,放置有兩個控件,上方是一個名為txtFind的文本框,下方是一個名為lbxData的列表框,列表框的數(shù)據(jù)來自工作表Data的列A中的數(shù)據(jù)。


圖1:帶有文本框和列表框的用戶窗體,列表框中的數(shù)據(jù)來自Data工作表中的A列
當(dāng)我在上方的文本框txtFind中輸入“excel vba”后,下方的列表框lbxData中將會只出現(xiàn)包含有“excel vba”的條目,如圖2所示。

圖2:在文本框中輸入文本后,列表框中只出現(xiàn)包含該文本的條目
實現(xiàn)上述效果的VBA代碼如下:

Option ExplicitDim varData Private Sub txtFind_Change()Dim i As LongDim strFind As String strFind = "*" & UCase(Me.txtFind.Text) & "*" With Me.lbxData.List = varDataFor i = .ListCount - 1 To 0 Step -1If Not UCase(.List(i)) Like strFind Then.RemoveItem iEnd IfNext iEnd WithEnd Sub Private Sub UserForm_Initialize()Dim lLast As LongDim rng As Range lLast = Sheet1.Range("A" & Cells.Rows.Count).End(xlUp).RowvarData = Sheet1.Range("A1:A" & lLast) Me.lbxData.List = varDataEnd Sub

我們可以將UserForm_Initialize代碼塊中的代碼Me.lbxData.List = varData刪除,這樣當(dāng)在文本框txtFind中輸入時,只要輸入的數(shù)據(jù)符合列表框包含的數(shù)據(jù),列表框中將自動出現(xiàn)相關(guān)條目并隨著輸入的進一步具體條目相應(yīng)減少至完全匹配輸入的數(shù)據(jù),如圖3、4、5所示。


圖3:初始化后的用戶窗體

圖4:開始輸入后,列表框中的條目隨著文本框中輸入的數(shù)據(jù)而變化

圖5:文本框中的數(shù)據(jù)越具體,列表框中的條目也越少且與文本框輸入相匹配
在Excel 2000及以后的版本中,VBA提供了一個Filter函數(shù),使用該函數(shù),也能實現(xiàn)上述效果,并且代碼更簡單。代碼如下:

Option ExplicitPrivate Sub txtFind_Change()Dim varData As Variant varData = Range("A1", Cells(Rows.Count, 1).End(xlUp)).ValuevarData = Application.Transpose(varData) varData = Filter(SourceArray:=varData, _Match:=txtFind.Value, _Include:=True, _Compare:=vbTextCompare) Me.lbxData.List = varData End Sub Private Sub UserForm_Initialize() Me.lbxData.List = Range("A1", Cells(Rows.Count, 1).End(xlUp)).ValueEnd Sub

如果需要將列表框中所選擇的條目放到文本框中,那么添加下面的代碼:

Private Sub lbxData_Click()Me.txtFind.Value = Me.lbxData.ValueEnd Sub

示例文檔下載:

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
學(xué)習(xí)VBA for Access
access+ado+flexgrid實例
VB愛好者樂園(VBGood) - 經(jīng)驗之談 - VB編程的必備技巧
VB代碼VB程序:在程序運行時執(zhí)行外部文本文件中的代碼
VB編程常見問題_VB系統(tǒng)和窗體控制_VB程序設(shè)計
Visual Basic 概述和可視化編程基礎(chǔ),語言基礎(chǔ)和順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),數(shù)組
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服