Re: [問題] ComboBox選值後,下拉再次顯示所有內容?

作者: edmund71405 (餅乾小舖)   2020-07-08 09:34:26
你好,我也在嘗試撰寫模糊比對的下拉選單
我遇到的問題是當下拉選單的搜索條件改變時,下拉選單的欄位長度沒有重新刷新
能請教您的實現方式嗎?
這是所有項目
https://i.imgur.com/G16DY95.jpg
這是輸入搜索條件
https://i.imgur.com/keo5TQM.jpg
刪除1後應該要顯示回三個選項
https://i.imgur.com/TEAaGNK.jpg
但是他變成在選單第一個內顯示三個
如果滑鼠重新點選箭頭他就顯示正常了
https://i.imgur.com/eWdW57z.jpg
應該怎麼用vba讓下拉選單重新打開呢
這是實現代碼
If ComboBox1.ListIndex = -1 Then
ComboBox1.Clear
For i = 0 To UBound(chanpin)
If InStr(chanpin(i, 1), ComboBox1.Value) Then
ComboBox1.AddItem chanpin(i, 1)
End If
Next
ComboBox1.DropDown
End If
※ 引述《xc9500 (只需要20秒的瘋狂勇氣!)》之銘言:
: 軟體:Excel
: 版本: 2016
: 各位大大好!請問一下,在comboBox的下拉選單中,有做模糊比對的功能,
: 當手動輸入或是在下拉選完值後,再次下拉時,下拉選單只會呈現之前所選的值。
: 例如:下拉選單中有5筆資料值,當選擇第一筆資料值"ABC"後,
: 再次點選下拉選單按鈕時,就只會呈現出"ABC".
: 所以想請問一下,有什麼方法,可以當輸入框中已經有值時,再點選下拉按鈕時,
: 仍會重新顯示5筆資料來供選擇呢?
: 附檔如下:
: https://1drv.ms/x/s!Atz5-ybVJn3XyiDpwtym8tb5UeBh?e=IKY5h6
: 請再幫忙解惑一下,謝謝
作者: soyoso (我是耀宗)   2020-07-08 11:32:00
不用判斷If ComboBox1.ListIndex = -1...If InStr(chanpin(i, 1)...內設個陣列變數來暫存符合的變數chanpin的值,ComboBox1.DropDown上面combobox1.list=陣列變數觸發事件寫在ComboBox1_Changehttps://i.imgur.com/JnpCPtT.gifv

Links booklink

Contact Us: admin [ a t ] ucptt.com