2016-06-13 10 views
1

複数のマッチを1つの列からComboBoxに戻したい。私はこの名前のようなコラム持つ「変数:,をを検索し、 『変数1のであれば、』複数のマッチをコンボボックスに近似返す

enter image description here

それから私は、コンボボックスで、このような出力をしたい。そして、何の一致が見つからない場合は、 『マッチしません』。 enter image description here

+0

あなたがA列で 'zVariable'を持っていた場合はどう - それはコンボボックスに表示されますか? –

+0

フォームまたはActiveXコントロールのComboBoxもですか?それはシート上かユーザフォーム上にあるのですか? –

+0

@Robin - そのユーザーフォーム上で。コンボボックスには、TextBoxで検索したものと一致するものだけが表示されます。 – user2458552

答えて

2

私は「おおよそ一致」)は大文字小文字を区別しないで、そして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 

これは私が得る出力されます:

enter image description here

+0

ありがとう!魅力のように動作し、一致が見つからない場合、おそらく私はCombBoxの値を数えることができます。カウントが0の場合、nomatchを返します。 – user2458552

+0

@ user2458552 - 'no match'ビットのサンプルコードを更新しました - ComboBoxのアイテム数を使うことができると思いますが、代わりに別のカウンタを作成しました。同じ違い: –

+0

ありがとう!完璧に動作する – user2458552