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
如何在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 模糊输入,求修改的主要内容,如果未能解决你的问题,请参考以下文章
EXCEL VBA combobox 模糊查询触发后 退格键功能改变