2017-05-04 20 views
0

Excel 2013. TextBoxに2つの名前を表示するには、データはExcelシートからのものです。 従業員IDに基づいて1つの名前を表示できますが、2つの名前を表示したい場合は機能しません。 TextBox2で複数行を有効にします。ExcelシートからTextBoxに2つの名前を表示

enter image description here

コードこれまで:範囲を通じて

Private Sub ComboBox1_Change() 

Dim mySheet As Worksheet 'declaring mySheet as the Worksheet... 
Dim x 
Dim i As Long 
Dim str As String 
Set mySheet = Sheets("Sheet1") 

x = mySheet.Range("A1").CurrentRegion.Value 

For i = 2 To UBound(x, 1) 
    If x(i, 2) = Val(ComboBox1.Value) Then 
     If str = "" Then 
      str = x(i, 1) 
     Else 
      str = str & vbNewLine & x(i, 1) 
     End If 
    End If 
Next i 

If str <> "" Then 
    TextBox3.Value = str 
Else 
    TextBox3.Value = "Match not found" 
End If 

End Sub 

Private Sub UserForm_Initialize() 

ComboBox1.Clear 

With ComboBox1 
    .AddItem "Mon" 
    .AddItem "Tue" 
    .AddItem "Wed" 
End With 

End Sub 

答えて

0

設定Multilie施設としてみてください以下のコード...

Private Sub TextBox1_Change() 

Dim mySheet As Worksheet 'declaring mySheet as the Worksheet... 
Dim x 
Dim i As Long 
Dim str As String 
Set mySheet = Sheets("Sheet1") 

x = mySheet.Range("A1").CurrentRegion.Value 

For i = 2 To UBound(x, 1) 
    If x(i, 2) = Val(TextBox1.Value) Then 
     If str = "" Then 
      str = x(i, 1) 
     Else 
      str = str & vbNewLine & x(i, 1) 
     End If 
    End If 
Next i 

If str <> "" Then 
    TextBox3.Value = str 
Else 
    TextBox3.Value = "Match not found" 
End If 

End Sub 

あなたがComboBox1の代わりにComboBox1のは、テキスト値を持っているのTextBox1を持っている場合、あなたはこのようにそれを試すことができます...

Private Sub ComboBox1_Change() 
Dim mySheet As Worksheet 'declaring mySheet as the Worksheet... 
Dim x 
Dim i As Long 
Dim str As String 
Set mySheet = Sheets("Sheet1") 

x = mySheet.Range("A1").CurrentRegion.Value 
If Application.CountIf(mySheet.Columns(2), ComboBox1.Value) > 0 Then 
    For i = 2 To UBound(x, 1) 
     If x(i, 2) = ComboBox1.Value Then 
      If str = "" Then 
       str = x(i, 1) 
      Else 
       str = str & vbNewLine & x(i, 1) 
      End If 
     End If 
    Next i 
    TextBox3.Value = str 
Else 
    TextBox3.Value = "Match not found" 
End If 
End Sub 
+0

sktneerは本当にありがとうございました。これは本当にありがとうございました。私は起こりたいと思っていたことです。コンボボックスをMon、Tue、Wed ...と一緒に使うことを考えています。.additem( "")コード。そのため、コンボボックスで月を選択すると、月曜日が休日のすべての名前がTextbox3に表示されます。 –

+0

よろしくお願いします。それがうれしかった。 – sktneer

+0

はいそれは動作します。私はコードを更新し、今回はComBoBox1を使用し、3つのオプションがあります。 –

0

ループと、次のようにテキストボックスに値を連結:TrueにTextBox3ため

If Not myRange Is Nothing Then 
    For Each c In myRange.Cells 
     TextBox3.Value = TextBox3.Value & " " & c.Value 
    Next 
Else 
    TextBox3.Value = "Match not found" 
End If 
+0

は私がそれを試してみましょう。どうもありがとうございます。 –

+0

これが役に立ったら教えてください。 –

+0

こんにちは私のコードを編集します。私が111を入力すると、2つの名前は表示されませんが、あまりにもありがとうございます。私は範囲としてxを宣言します。 –

関連する問題