2017-02-07 3 views
0

VBA를 처음 사용하는 경우 - lookup_value를 값의 범위로 참조하기 위해 Excel 내에서 Vlookup 함수를 작성하려고합니다. lookup_range라는 범위에 내 값을 저장했지만 vlookup 값을 셀에 출력하면 N/A를 얻습니다.범위 내에서 lookup_value를 범위로 쓰려면 어떻게합니까?

인터넷을 통해 전 수색했지만 내 질문에 대한 해결책은 없습니다.

Sub Vlookup_values() 

    Dim Vlkp_cell, n As Double 
    Dim Search_range, row_end, col_end As Double 

    Sheets("Movement").Activate 
    Range("A1").End(xlDown).Select 
    Vlkp_cell = ActiveCell.Row 

    ReDim Lookup_range(Vlkp_cell) As String 
    n = 0 
    Range("A1").Select 
    For n = 1 To Vlkp_cell 
     ActiveCell.Offset(1, 0).Select 
     Lookup_range(n) = ActiveCell.Value 
     ActiveCell.Offset(0, 9).Value = Lookup_range(n) 
    Next n 

    Sheets("Mapping").Activate 
    Range("A1").End(xlDown).Select 
    row_end = ActiveCell.Row 

    Range("A1").End(xlToRight).Select 
    col_end = ActiveCell.Column 

    Range(Cells(1, 1), Cells(row_end, col_end)).Name = "Search_range" 
    Range("Search_Range").Select 

    Sheets("Movement").Activate 
    Range("A1").Select 
    ActiveCell.Offset(0, 1).Select 
    n = 0 
    For n = 1 To Vlkp_cell 

     ActiveCell.Offset(1, 0).Select 
     ActiveCell.Value = Application.VLookup(Lookup_range(n), Search_range, 2, False) 

    Next n 


End Sub 

답변

0

나는 당신이 당신의 코드에서 달성하려고하는 것을 이해 할 수 있었다 경우, 아래의 코드 시도 : ifeelcrazy123 당신이 내 대답에 코드를 테스트 한 @

Option Explicit 

Sub Vlookup_values() 

    Dim Vlkp_cell As Long, n As Long 
    Dim Search_range As Range, row_end As Long, col_end As Long 

    With Sheets("Mapping") 
     row_end = .Range("A1").End(xlDown).Row 
     col_end = .Range("A1").End(xlToRight).Column 

     Set Search_range = .Range(.Cells(1, 1), .Cells(row_end, col_end)) ' <-- set the Range for the VLookup 
    End With 

    With Sheets("Movement") 
     Vlkp_cell = .Range("A1").End(xlDown).Row 

     For n = 1 To Vlkp_cell 
      .Range("A" & n).Offset(0, 9).Value = .Range("A" & n).Value ' <-- not sure why you need the values copied 9 column to the right ? 
      .Range("B" & n).Value = Application.VLookup(.Range("A" & n).Value, Search_range, 2, False) 
     Next n 
    End With 

End Sub 
+0

을? –

+0

정말 고마워요. 그게 효과가! (늦은 답변 죄송합니다). FYI, 이전 8 개 항목이 다른 데이터로 채워지므로 오른쪽에있는 9 개의 값이 필요했습니다. 나중에 비교하고 금융 시스템에 제출해야합니다. 고맙습니다! – ifeelcrazy123