0

我正在尝试创建一个组合框,以便我可以搜索特定项目,并且与搜索匹配的任何内容(字符串中的任何位置)都将显示在下拉列表中。

我已经编码了它的第一位,如果我输入“02”,任何包含“02”的项目都将显示在列表中。当我添加一个数字时,例如'6'(现在搜索框='026'),任何带有'026'的东西都会出现在列表中。我通过删除原始列表中不包含搜索字符串的每个项目来完成此操作(使用 InStr)。

我现在遇到的问题是我不知道如何编码,这样当我退格或更改搜索的字符串时,它会从原始列表中搜索。因为我在“第一次”搜索期间删除了该项目,所以该列表不包含我需要的项目,因此不会显示。

注意,outlook 指的是一个封闭的 excel 工作簿,用于使用 Getobject 的数据源。

请参见下面的代码:

Dim i As Long
    
    For i = cmbPC.ListCount - 1 To 0 Step -1
        If InStr(1, Left(cmbPC.List(i), 5), cmbPC.Text) = 0 Then
            cmbPC.RemoveItem (i)
        End If
    Next i

cmbPC.DropDown

End Sub

Private Sub Userform_Initialize()


With GetObject("C:\.....)

        cmbPC.List = .Sheets("Outlook GAL").Range("C2:C10000").Value
        .Close 0
    End With

End Sub
4

0 回答 0