複数のマッチを1つの列からComboBoxに戻したい。私はこの名前のようなコラム持つ「変数:,をを検索し、 『変数1のであれば、』複数のマッチをコンボボックスに近似返す
それから私は、コンボボックスで、このような出力をしたい。そして、何の一致が見つからない場合は、 『マッチしません』。
複数のマッチを1つの列からComboBoxに戻したい。私はこの名前のようなコラム持つ「変数:,をを検索し、 『変数1のであれば、』複数のマッチをコンボボックスに近似返す
それから私は、コンボボックスで、このような出力をしたい。そして、何の一致が見つからない場合は、 『マッチしません』。
私は「おおよそ一致」)は大文字小文字を区別しないで、そしてb)だけRange
値内のどこかにあることを、検索文字列を必要とするという仮定を使用しUserForm
内でこのコードを試してみてくださいます。
Option Explicit
Private Sub CommandButton1_Click()
Dim rngSource As Range
Dim rngCell As Range
Dim strValueToApproximatelyMatch As String
Dim lngCounter As Long
Dim lngResultCount As Long
'get candidate values and put to an array
Set rngSource = Sheet1.Range("A2:A10")
'get value to match approximately
strValueToApproximatelyMatch = Me.TextBox1.Value
'clear combo box
Me.ComboBox1.Clear
'set result count to 0
lngResultCount = 0
'iterate array and look for approximate match to input
For lngCounter = 1 To rngSource.Rows.Count
'get candidate
Set rngCell = rngSource.Cells(lngCounter, 1)
'test candidate against value to approximately match
If InStr(1, rngCell.Value, strValueToApproximatelyMatch, vbTextCompare) > 0 Then
'add to list if test passed
Me.ComboBox1.AddItem rngCell.Value
'increment result count
lngResultCount = lngResultCount + 1
End If
Next lngCounter
'add the no match if result count =0
If lngResultCount = 0 Then
Me.ComboBox1.AddItem "No Match"
End If
End Sub
を
これは私が得る出力されます:
ありがとう!魅力のように動作し、一致が見つからない場合、おそらく私はCombBoxの値を数えることができます。カウントが0の場合、nomatchを返します。 – user2458552
@ user2458552 - 'no match'ビットのサンプルコードを更新しました - ComboBoxのアイテム数を使うことができると思いますが、代わりに別のカウンタを作成しました。同じ違い: –
ありがとう!完璧に動作する – user2458552
あなたがA列で 'zVariable'を持っていた場合はどう - それはコンボボックスに表示されますか? –
フォームまたはActiveXコントロールのComboBoxもですか?それはシート上かユーザフォーム上にあるのですか? –
@Robin - そのユーザーフォーム上で。コンボボックスには、TextBoxで検索したものと一致するものだけが表示されます。 – user2458552