我有一个可搜索的组合框,当我在其中键入字母时(vba如下),可以选择建议。但是我希望能够单击组合框的箭头(如果我当然不在其中键入任何其他内容)并查看整个下拉列表。出于某种原因,如果单击箭头,下面的代码不会显示整个列表。
任何建议都非常感谢。
Dim ws As Worksheet
Dim x, dict
Dim i As Long
Dim str As String
Set ws = Sheets("Lists")
x = ws.Range("Listing").value
Set dict = CreateObject("Scripting.Dictionary")
str = Me.cbo1.value
If str <> "" Then
For i = 1 To UBound(x, 1)
If InStr(LCase(x(i, 1)), LCase(str)) > 0 Then
dict.Item(x(i, 1)) = ""
End If
Next i
Me.cbo1.List = dict.keys
Else
Me.cbo1.List = x
End If
Me.cbo1.DropDown
答案 0 :(得分:0)
您想要的是,如果在用户未选择任何内容或在组合中写入任何内容时单击箭头,则显示列表中的所有项目,您从命名范围"Listing"
加载该项目而不进行任何操作过滤
为此,请将此事件处理程序添加到您的用户表单代码中:
Private Sub Cbo1_DropButtonClick()
'If Len(Trim(cbo1.text)) = 0 Then
If Trim(cbo1.text) = "type here" Then
cbo1.List = Sheets("Lists").Range("Listing").Value
Exit Sub
End If
' Your code to add only items that match the characters typed by the user
' ...
End Sub