2012-10-23 2 views
0

스프레드 시트에 날짜 목록이 있습니다. 그 날짜 다음에 세부 정보가 있습니다. 모든 날짜를 찾는 콤보 상자가 있습니다.행에서 데이터를 선택하여 양식에 표시하는 방법

Private Sub ComboBox1_Change() 
    Dim rw As Long, cl As Range 
    staffName = TextBox8.Value 

    rw = WorksheetFunction.Match(Me.ComboBox1.Value, Worksheets(staffName).Range("A16:A18"), 0) 
    TextBox1 = Worksheets(staffName).Range("A" & rw).Offset(0, 1) 
    TextBox2 = Worksheets(staffName).Range("A" & rw).Offset(0, 2) 
    TextBox3 = Worksheets(staffName).Range("A" & rw).Offset(0, 3) 
    TextBox4 = Worksheets(staffName).Range("A" & rw).Offset(0, 4) 

End Sub 

이 나던 오류,하지만 나던 : 나는, 나는 그것이 양식의 텍스트 상자에 해당 행의 해당 데이터를 표시하려면 드롭 다운에서 특정 날짜를 선택하면 목록이 있지만, 지금까지 내가 가진 어떤 아이디어라도?

+0

첫째, 함수는'값으로 경기를 포함하는 위치의 인덱스를 나타내는 정수 값을 반환 WorksheetFunction.Match' 당신은 찾고 있습니다. 그러나 반환 된 값은 절대 행 번호가 아니라 지정된 범위의 오프셋이됩니다. 귀하의 경우 : 예상 반환 값은 1,2 또는 3이고 16,17 또는 18이 아닙니다. – Ahmad

+0

빠른 답장을 보내 주셔서 감사합니다. 여기에서 어디로 가야합니까? – user1767641

+0

나는 rw = WorkSheetFunction에 중단 점을 넣을 것입니다. 매치 (Match) '를 선택하고, 실행이 끝나면 직접 실행 창 (Ctrl + G)을 사용하여 얻은 값을 인쇄하십시오. 또는'Debug.Print rw' 바로 다음에이 줄을 추가하기 만하면됩니다. – Ahmad

답변

0

과 같이, VBA를 Find 기능에 일치 변경에 대한 방법 : 모든

Private Sub ComboBox1_Change() 

    Dim cl As Range, wks As Worksheet 
    staffname = TextBox8.Value 

    Set wks = Sheets(staffname) 
    Set cl = wks.Range("A16:A18").Find(Me.ComboBox1.Value, lookat:=xlWhole) 

    With Me 
     .TextBox1.Value = cl.Offset(, 1) 
     .TextBox2.Value = cl.Offset(, 2) 
     .TextBox3.Value = cl.Offset(, 3) 
     .TextBox4.Value = cl.Offset(, 4) 
    End With 

End Sub 
관련 문제