我們之前講過使用公式來制作支持關(guān)鍵字搜索的下拉列表框,但是當(dāng)下拉列表的內(nèi)容較多時(shí),公式計(jì)算可能會(huì)比較慢。使用公式的方法,要得出匹配的下拉列表大致經(jīng)過了以下幾個(gè)步驟: 1、輸入關(guān)鍵字 2、公式得出包含關(guān)鍵字的列表 3、數(shù)據(jù)驗(yàn)證的下拉列表以上一步的結(jié)果生成列表 對(duì)公式法感興趣的,可以轉(zhuǎn)到以下鏈接學(xué)習(xí)。 今天要給大家分享一個(gè)實(shí)例,使用VBA的方法來制作一個(gè)選項(xiàng)列表。輸入關(guān)鍵字,按回車鍵或者Tab鍵可以得到符合的列表,雙擊列表中的選項(xiàng)可以將值輸入到單元格中。 下面給大家講一下設(shè)置步驟: 1、創(chuàng)建窗體 窗體上添加幾個(gè)控件:
2、添加代碼 關(guān)鍵字文本框 在關(guān)鍵字文本框的KeyDown事件中加入以下代碼,輸入關(guān)鍵字后,按回車鍵或者Tab鍵就可以返回查找結(jié)果。 列表框 在列表框的DblClick(雙擊)事件中加入以下代碼,雙擊查找結(jié)果中某一行,就可以將該行內(nèi)容寫入活動(dòng)單元格。 關(guān)閉按鈕 在關(guān)閉按鈕中加入以下代碼,并設(shè)置關(guān)閉按鈕的Cancel屬性為True。這樣設(shè)置后,按Esc鍵就可以直接退出窗體了。 3、設(shè)置有效區(qū)域 我們可以設(shè)置只有激活指定范圍內(nèi)的單元格才彈出列表框。 在需要輸入數(shù)據(jù)的工作表的SelectionChange事件中輸入以下代碼。 以上代碼的意思是,首先設(shè)置列表框的作用范圍是A2:F10000這個(gè)區(qū)域,如果選中了多行或者多列區(qū)域,則退出,也就是不顯示列表框。判斷選中的單元格是否在設(shè)定的作用范圍內(nèi),如果在作用范圍內(nèi),則顯示列表框窗體。 到這里,我們就制作了一個(gè)可以帶關(guān)鍵字模糊匹配的列表框。 在工作表上點(diǎn)擊指定區(qū)域(A2:F10000)任意一個(gè)單元格就會(huì)彈出窗體。在關(guān)鍵字文本框中輸入關(guān)鍵字并按回車鍵可以查找包含該關(guān)鍵字的內(nèi)容。 直接按回車鍵可以返回所有結(jié)果。 --End-- |
|