我正在玩一个用户表单,其中有TextBox
和ComboBox
。
现在我的目标是开始在TextBox
中写一个名字,同时在名单上存储名称(存储在数据库中)列表,该名单过滤掉我在文本框中输入的每个字母。
一个例子就是写" N ..."在TextBox
中,ComboBox
提出建议"尼克,内森等等#34;
有没有人有任何想法,我正在敲打这个问题一段时间。
谢谢!
答案 0 :(得分:0)
您可以尝试这样的事情......
将以下代码放在UserForm模块上。
代码假设您在工作簿中有一个名为Data的工作表,以及UserForm上有两个名为TextBox1和ComboBox1的控件。
Private Sub TextBox1_Change()
Dim wsData As Worksheet
Dim x, dict
Dim i As Long
Set wsData = Sheets("Data") 'Sheet with data
Set dict = CreateObject("Scripting.Dictionary")
'Clearing the combobox
Me.ComboBox1.Clear
If TextBox1.Value <> "" Then
x = wsData.Range("A1").CurrentRegion.Value
'Assuming the ComboBox will have items from column A of data sheet
'Assuming Row1 is the header row
For i = 2 To UBound(x, 1)
If LCase(Left(x(i, 1), 1)) = LCase(Left(TextBox1.Value, 1)) Then
dict.Item(x(i, 1)) = ""
End If
Next i
Me.ComboBox1.List = dict.keys
End If
End Sub