2014-07-16 5 views
0

나는 VBA에 새로운 것이므로 VLOOKUP 코드에 문제가 있습니다.VLookup 검색에 다른 열 추가

나는 3 장이 있습니다. Sheet2 (Supplier)는 부품 번호 &을 공급하고 Sheet 3 (Cost)는 부품 번호 &을 포함합니다. Sheet1 (부품 번호)에는 표준 부품 번호 목록이 들어 있습니다. Sheets2 및 3의 데이터는 정기적으로 업데이트됩니다. VBA에서 공급 업체 목록 (Sheet2.ColumnA)의 부품 번호 (Sheet1.ColumnA)를 찾고 Sheet1.ColumnB에 공급 업체 이름 (Sheet2.ColumnC)을 붙여 넣기를 원합니다. 이 작업을 수행하는 방법을 파악한 후에는 비용과 비슷한 코드를 수정하여 Sheet1.ColumnC에 저장합니다. 여기

는 지금까지이 작업은 다음과 같습니다

Sub Lookup() 

Application.ScreenUpdating = False 

Dim Lr As Integer 

Lr = Worksheets("Part Numbers").Cells(Rows.Count, 1).End(xlUp).Row ' last row 

For i = 1 To Lr ' last row 

Worksheets("Part Numbers").Cells(i + 1, 2) = "=VLOOKUP(RC[-1],'Supplier'!A:C,3,0)" 

    If i = "" Then Exit For 

Next i 

End Sub 

나는 Sheet1.ColumnB에 채워집니다이 (셀 A에서 촬영)이 코드

"=VLOOKUP(A2,'Supplier'!A:B:B,3,0)" 

사람이 왜이 표시되어 말해 수를 실행하면 : B : 내가 A : C를 입력하면 B?

+0

'If i = ""Exit For' 행으로 무엇을하려고합니까? 그것이 결코 아무것도하지 않을 것 같이 보인다. 상태는 절대로 다시는 안됩니다. –

+0

감사합니다. 코딩에 관한 많은 피드를 읽었으며 제대로 이해하지 못한 채 픽업했을 것입니다. – Kel

답변

0

R1C1과 A1 표기법을 혼합하면 Excel이 공식을 해석하는 방법을 결정할 때 예기치 않은 바람직하지 않은 결과를 초래할 가능성이 높습니다.

Worksheets("Part Numbers").Cells(i + 1, 2) = "=VLOOKUP(RC[-1],'Supplier'!C1:C3,3,0)" 

또는 : 그것은인지 여부를 한 눈에 C3는 약간의 혼란이 특정 경우

Worksheets("Part Numbers").Cells(i + 1, 2) = "=VLOOKUP(A" & (i + 1) & ",'Supplier'!A:C,3,0)" 

을, 나는 아마 C1 그냥 있기 때문에 후자의 방법으로 갈 것은 다음 시도 A1 또는 R1C1 표기법. 항상 A 열을 기반으로 검색하지 않는 경우 작은 변환 방법으로 열 인덱스에서 열 문자를 결정할 수 있습니다.

+0

도움을 주셔서 감사합니다. 또한 워크 시트 ("부품 번호"), 셀 (i + 1, 2) = "= VLOOKUP (RC [-1], 'Supplier'! C [-2 ] : C [1], 3,0) "매우 혼란스럽고 혼란스러워 보였으므로 따라 가기가 더 쉽기 때문에 제공 한 것으로 바꿨습니다. 다시 한번 감사드립니다. – Kel

+0

@Kel 기록을 위해, 귀하의 방정식에 수식이 열 C에있을 때 A : C를 상대 R1C1로 변환하려고하면 C [-2]가 필요합니다. C NOT C [-2] : C [1]은 A : D.이 경우 VLOOKUP은 열을 추가 했어도 상관 없으므로 실제로는 중요하지 않습니다. 이제는 다른 워크 시트에 대한 상대 참조를 사용하는 것이주의해야 할 것이므로 나중에 참조 할 때이 모든 것을 언급하십시오. –