2016-04-21 5 views
0

うまくいきます。成功せずに多くを試した後、専門家の助けが必要です。コンボボックスとラベルの2つの基準に基づいてTextbox1の値を返します

私は3列のシート1での価格表があります。

医療処置のUserFormで手順


タイプ
価値を、私はTextBox1テキストボックスに基づく手続きの値を返す必要がありますcombobox1で選択された基準(Sheet1のMedical Procedure列にある値)とlabel1のキャプション(AlrealdyにはSheet1のType列で遭遇する可能性のある値が設定されています)。

私はこれをユーザーBハート(ありがとう、Bハート!)からstackoverflowで試しましたが、数値でテキストボックスに戻すように変更できませんでした(このvbaは、代わりにリストボックス)。別の問題は、以下の基準が2つのコンボボックスにあることです。私はコンボボックスとラベルの2つの基準が必要です。たぶん

Private Sub GetCondStrandValue() 
Dim iRow As Long 
Dim strValue As String 

strValue = vbNullString 
If Me.ComboBox1.Value = vbNullString Or Me.ComboBox2.Value = vbNullString Then Exit Sub 

With Planilha1 
    For iRow = 2 To .Range("A65536").End(xlUp).Row 
     If StrComp(.Cells(iRow, 1).Value, Me.ComboBox1.Value, 1) = 0 And _ 
     StrComp(.Cells(iRow, 2).Value, Me.ComboBox2.Value, 1) = 0 Then 
      strValue = .Cells(iRow, 3).Value 
      Exit For 
     End If 
    Next 
End With 

If strValue = vbNullString Then Exit Sub 
With Me.ListBox1 
    'If you only want a single value in the listbox un-comment the .clear line 
    'Otherwise, values will continue to be added 
    '.Clear 
    .AddItem strValue 
    .Value = strValue 
    .SetFocus 
End With 
End Sub 
+0

@DirkReichelはありがとうございました!私は上に試したもので質問を編集しました –

答えて

0

このような何か:

Private Sub combobox1_Change() 

    Dim lastRow As Integer 

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row 

    With Me 

     For r = 2 To lastRow 

      If Sheets("Sheet1").Cells(r, 1) = .ComboBox1.Value And Sheets("Sheet1").Cells(r, 2) = .Label1.Caption Then 
       .TextBox1.Text = Sheets("Sheet1").Cells(r, 3) 
       Exit For 
      End If 

     Next 

    End With 

End Sub 
+0

あなたの優しさに感謝します!試しましたが、エラー438が表示されます。私はPrivate Sub combobox1_Change()の下にこのコードを置いたのでしょうか?私はそれがcombobox1が選択された値を持っているときに実行されたい。知識の不足のため申し訳ありません! –

+0

'Activesheet'を 'Sheets( "Sheet1")'に変更するか、オブジェクトがどこにあるかを確認してください。物が別のシート上にある場合は、Withブロックを削除し、正しいシート名(またはUserForm名)を持つ '.Cells'(ドットで始まるもの)などの接頭辞を付ける必要があります。私はまたあなたのオブジェクト名、 "ComboBox1"などをチェックします。また、私のコードはあなたのデータが列A:Cであることを前提としています。 –

+0

私はあなたの要件に合わせてコードの2番目の部分を修正しました。 –

関連する問題