Outlook VBA 组合框中的动态搜索

时间:2021-07-20 04:04:42

标签: vba outlook combobox userform

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

我已经编码了它的第一位,如果我输入'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

0 个答案:

没有答案