0
我有一个文本框和一个列表框,用户的形式。我希望用户能够在文本框中输入文本,并根据他们的输入具有列表框筛选结果。过滤器仅匹配列表框在Excel中的结果,从文本框的文本
到目前为止,我已经设法列表框来突出显示列表中匹配的结果,而不是过滤掉不匹配的结果。我也遇到了我的代码没有标识多个匹配记录的问题,不知道我需要添加什么才能实现这一点。
Private Sub TextBox3_Change()
'searches ListBox3 for match and hightlights result. Need to filter results.
Dim i As Long
Dim sFind As String
sFind = Me.TextBox3.Text
If Len(sFind) = 0 Then
Me.ListBox3.ListIndex = -1
Me.ListBox3.TopIndex = 0
Else
For i = 0 To Me.ListBox3.ListCount - 1
If UCase(Left(Me.ListBox3.List(i), Len(sFind))) = UCase(sFind) Then
Me.ListBox3.TopIndex = i
Me.ListBox3.ListIndex = i
Exit For
End If
Next i
End If
End Sub
无论你的问题和你的代码表示你是否允许你的列表框或者多个选择来清除先前的选择。我也想知道为什么要在文本框输入的选择,而不是让用户通过点击在列表框中选择他们。 – Variatus
因此我的问题是,如何在结果中允许多重选择?我希望列表框可以作为它所连接的行源的一种搜索工具。因此,当用户键入到文本框中,只匹配在列表中出现 – user3795654
为了使ListBox中的'MultiSelect'属性必须设置为'frmMultiSelectMulti'或'frmMultiSelectExtended'多重选择的结果。但是,我不明白你的工作流程。你是否在文本框中多次输入单词,并将每个单词添加到列表框中的选择中?如果是这样,为什么不使用链接到相同RowSource而不是TextBox的组合框?你打算如何取消选择列表框中的一个项目或全部? – Variatus