0
私は、テキストボックスとリストボックスを持つユーザーフォームを持っています。私は、ユーザーがテキストボックスにテキストを入力することができ、その入力に基づいてリストボックスフィルタの結果を持たせたいと思います。フィルターTextBoxテキストからListBox Excelで一致する結果のみ
これまでのところ、私はListBoxをリスト内で強調表示し、一致しない結果をフィルタリングしないようにしました。私はまた、複数の一致するレコードを特定せず、これを実現するために何を追加する必要があるのかわからない、自分のコードの問題にぶつかってきました。
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
私の質問は、どのように結果に複数の選択を許可するのですか?リストボックスを、それが添付されているrowsourceのための一種の検索ツールとして機能させたい。したがって、ユーザがテキストボックスに入力すると、一致する結果のみがリストに表示されます – user3795654
ListBoxで複数の選択を許可するには、 'MultiSelect'プロパティを' frmMultiSelectMulti'または 'frmMultiSelectExtended'に設定する必要があります。しかし、私はあなたのワークフローを理解していません。 TextBoxに複数回単語を入力して、それぞれをListBoxの選択項目に追加することを意味しますか?その場合、TextBoxの代わりに同じRowSourceにリンクされたComboBoxを使用してみませんか?どのようにListBoxまたはすべてで1つの項目を選択解除するつもりですか? – Variatus