根据VBA Excel中文本框中的输入,为组合框中的名称提供建议

时间:2016-11-03 14:49:05

标签: excel vba excel-vba

我正在玩一个用户表单,其中有TextBoxComboBox

现在我的目标是开始在TextBox中写一个名字,同时在名单上存储名称(存储在数据库中)列表,该名单过滤掉我在文本框中输入的每个字母。

一个例子就是写" N ..."在TextBox中,ComboBox提出建议"尼克,内森等等#34;

有没有人有任何想法,我正在敲打这个问题一段时间。

谢谢!

1 个答案:

答案 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