EXCEL COMBOBOX 模糊输入,求修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL COMBOBOX 模糊输入,求修改相关的知识,希望对你有一定的参考价值。

Function pinyin(ByVal r As String) As String '查拼音函数
On Error Resume Next
Const hanzi = "啊芭擦搭蛾发噶哈击喀垃妈拿哦啪期然撒塌挖昔压匝ABCDEFGHJKLMNOPQRSTWXYZZ"
Dim i As Long, j As Byte, temp As String
For i = 1 To Len(r)
For j = 1 To 24
If Asc(Mid(r, i, 1)) >= Asc(Mid(hanzi, j, 1)) Then temp = Mid(hanzi, 23 + j, 1)
Next
pinyin = pinyin & temp
Next
End Function
Private Sub ComboBox1_Change()
If ComboBox1.ControlTipText <> "2" Then '2表示选择了下拉列表项,不触发文本框变动
Dim d
ww = TextBox1
arr = Sheet1.Range("a2:a" & Range("a1048576").End(xlUp).Row)
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr)
If (InStr(1, arr(i, 1), ww, 1) > 0 Or InStr(1, pinyin(arr(i, 1)), ww, 1) > 0) Then d(arr(i, 1)) = ""
Next
ComboBox1.SetFocus '必须让COMBOBOX先获得焦点
'ComboBox1.Clear
ComboBox1.List = d.keys
ComboBox1.DropDown
'TextBox1.SetFocus
'ComboBox1.DropDown '切回文本框后必须再下拉才行
End If
End Sub
Private Sub UserForm_Initialize()
Dim i As Long, X As Long
ComboBox1.Clear
'With Sheet2
i = Sheet1.Range("a1048576").End(xlUp).Row
For X = 2 To i
ComboBox1.AddItem Sheet1.Range("a" & X).Value
Next
End Sub

参考技术A 不用修改,程序正常。

如何在excel里面进行一对多的模糊匹配

开始社这样的

如何可以吧列表该为这样

我又2000多条的数据球大神指点我该怎么做

SHEET2的B1输入=INDIRECT("Sheet1!b"&MATCH(A1&"*",Sheet1!B:B,))

下拉

或直接在C1输入=INDIRECT("b"&MATCH(A1&"*",B:B,))

动画为举例,如不行,直接发表,Mrpinetree@qq.com

 

参考技术A 在C1中输入或复制粘贴下列公式
=INDIRECT("B"&MATCH(A1&"*",B:B,0))
下拉填充
选择B列 隐藏
参考技术B C1=INDEX(B:B,MAX(IFERROR(FIND(A1&"-",B:B)*ROW(1:65525),0)))
数组公式 ctrl+shift+enter 结束

这个只限于对应A列数据,B列有唯一值。
参考技术C

有两种方法:

1、SHEET2的B1输入=INDIRECT("Sheet1!b"&MATCH(A1&"*",Sheet1!B:B,)),然后下拉

2、直接在C1输入=INDIRECT("b"&MATCH(A1&"*",B:B,))

3、动画操作举例参考:

参考技术D 要求B列--前的部分和A列的相同???如果是就很简单!

以上是关于EXCEL COMBOBOX 模糊输入,求修改的主要内容,如果未能解决你的问题,请参考以下文章

easyui combobox 模糊匹配的问题

EXCEL VBA combobox 模糊查询触发后 退格键功能改变

如何用VB6中的COMBOBOX实现模糊输入后自动匹配下拉列表

如何设计ComboBox的过滤功能,直接能模糊查找

如何令comboBox不能输入,只能选择

C# combobox 模糊搜索。