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