2016-03-18 4 views
0

内のいずれかの項目をクリックすると、私は(例:データはプロパティメニューの[値集合ソースを経由してA4:A100から来ている)リストボックスを持って移入テキストボックスデータリストボックス

誰かがリストボックス内の一番上の項目をクリックした場合(セルA4)をテキストボックスに私が

これはに新しいです...セル内で(セルB4)、私はセルC4などであってもよく、何でも表示したいと思い、次のテキストボックスの隣にあるものは何でも表示したいと思い私はあなたの用語で簡単に行ってください - これまで私はこれを持っています:

Private Sub ListBox1_AfterUpdate() 
Me.TextBox1.Value = Application.WorksheetFunction.VLookup(ListBox1.Value, Range("A1:B1"), 4, False) 

End Sub 

どこが間違っていますか?

CLICK HERE TO SEE THE PICTURE

答えて

0

使用この:

Private Sub ListBox1_AfterUpdate() 
    Me.TextBox1.Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, Sheets("the_sheet_name").Range("A1:D100"), 2, False) 
    Me.TextBox2.Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, Sheets("the_sheet_name").Range("A1:D100"), 3, False) 
    Me.TextBox3.Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, Sheets("the_sheet_name").Range("A1:D100"), 4, False) 
End Sub 

あなたがrange namesを使用する場合は、あなたがthe_sheet_name一部せずに使用することができ、ワークブックで「グローバル」それを使用することができますので、それは良いだろう。 Range("myRange")Sheets("the_sheet_name")の内側とRange("A1:D100")

の範囲で名前の範囲であるとしたとき、あなたは、サブruntine ListBox1_AfterUpdateまたはListBox1_ClickまたはListBox1_Change

まあでコードMe.Textbox1.value =...を使用することができます

Private Sub ListBox1_AfterUpdate() 
    Me.TextBox1.Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, Range("myRange"), 2, False) 
    Me.TextBox2.Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, Range("myRange"), 3, False) 
    Me.TextBox3.Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, Range("myRange"), 4, False) 
End Sub 

VlookUpを使用すると、あなたは言う:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]) 

氏VloopUp、このセル/列内でこの値を探し、列番号#の値を返します。データは整理されません。= False | ordenedさ= Trueの

あなたが列にrange("K1:N100")を取る場合KあなたはあなたがVlookUpを使用して、あなたが言う理由は、列を返すことを、あなたが探している値を持っているものの行には分からない1または2または3または4(K - N)です。列の値をOにする場合は、範囲をrange("K1:O100")に設定し、シートの列の番号ではないため、列5を返すように要求する必要があります。選択した範囲内の列の数です。

あなたはコメントで尋ねると、あなたはVlookUpから返された値をフォーマットすることができる方法がFormat

a = Format(Application.WorksheetFunction.VLookup(Me.ListBox1.Value, Range("myRange"), 2, False), "dd-mmm-yyyy") 
である詳細について VlookUp

編集#2

のためにこれを参照してください。

ここで、

a:あなたがStringまたはVariantタイプ

Formatにすることができ、保存することができる場所、変数:操作

"dd-mmm-yyyy"を行う機能です:あなたがしたい日付形式です。そしてあなたが必要とすることができます。例:

mmmm >>> January 
yyyy >>> 2016 
dd >>> 02 
d >>> 2 
dddd >>> Monday 
mmm >>> Jan 
mm >>> 01 
m >>> 1 

これを楽しんでください。

ここではFormatについて詳しく見ることができます。

+0

ファンタスティックを避けることができる - 御馳走を働いた、ありがとうございました! Range( "A1:B100")、2、False) ' A1:C100に変更した場合は、C列から検索します代わりに? –

+0

自分の答えの中で私のlas編集を見てください。 –

+0

信じられないほど!このサイトを見つけてとても幸せであり、とても役に立ちました。ありがとう、あなたの将来の幸運 –

0

あなたはVLooking

Private Sub ListBox1_AfterUpdate() 
Dim ws As Worksheet 
Dim iRow As Long 

Set ws = ThisWorkbook.Worksheets("textbox") 
With Me 
    iRow = Me.ListBox1.ListIndex + 4 

    .TextBox1.Value = ws.Cells(iRow, 2) 
    .TextBox2.Value = ws.Cells(iRow, 3) 
    .TextBox3.Value = ws.Cells(iRow, 4) 
End With 

End Sub