2013-10-26 2 views
0

두 시트에있는 고유 한 식별자를 사용하여 다른 시트의 정보로 한 시트의 정보를 Excel 문서에서 정렬하는 방법을 알아 내려고합니다.VBA Excel : 다른 시트 검색을 통한 정렬

 A  | B | C 
John Doe  | M | 112 
Jane Doe  | F | 147 
Kerry West | F | 293 
Robert Smith | M | 861 

Sheet 2 고유 식별자와 같은 점수를 포함

내가 Excel에서 두 개의 개별 시트를 가지고, sheet1 이름, 성별, 더 많거나 적은 같은 외모 고유 ID를 포함하여 사용자 정보를 포함합니다 :

A | B 
112 | 15 
147 | 12 
293 | 18 
861 | 11 

내가 원하는 것은 성별에 따라 두 장의 두 그룹을 구분하는 것입니다. 그래서

A | B | C | D 
112 | 15 | 147 | 12 
861 | 11 | 293 | 18 

행이 그 : 그 시트이이처럼 보이는 끝날 것 때문에 그래서 기본적으로 어떻게 든 그 고유 한 ID와 관련된 성별, 시트 두에 고유 ID를 가지고 시트 1을 찾은 다음 확인 것 여성으로 식별 된 행은 열 C 및 D로 이동합니다. 나는이 작업을 수행하는 방법을 이해할 수 없으며 열매를 맺습니다. 어떤 도움이나 조언을 주시면 감사하겠습니다. 이 같은

답변

1

시도 뭔가 :

는 "Sheet3에"라는 이름의 시트를 작성하고 요약 채우는 곳이 있습니다. 이렇게하면 시작할 수 있습니다.

Sub nameList() 

Dim sh1 As Worksheet 
Dim sh2 As Worksheet 
Dim sh3 As Worksheet 
Dim lc1, lc2, x, y, i, vLook 

Set sh1 = Sheets("Sheet1") 
Set sh2 = Sheets("Sheet2") 
Set sh3 = Sheets("Sheet3") 

lc1 = sh1.Cells(Rows.Count, "A").End(xlUp).Row 
lc2 = sh2.Cells(Rows.Count, "A").End(xlUp).Row 

x = 2 
y = 2 
For i = 2 To lc1 
    vLook = Application.WorksheetFunction.VLookup(sh1.Cells(i, 3), Range(sh2.Cells(1, 1), sh2.Cells(lc2, 2)), 2, "false") 
    If sh1.Cells(i, 2) = "M" Then 
     sh3.Cells(x, 1) = sh1.Cells(i, 3) 
     sh3.Cells(x, 2) = vLook 
     x = x + 1 
    Else 
     sh3.Cells(y, 3) = sh1.Cells(i, 3) 
     sh3.Cells(y, 4) = vLook 
     y = y + 1 
    End If 
Next i 

End Sub