VBA 버전 기능 Application.VLookup
을 사용할 수 있습니다.
아래의 코드 코드는 시트 "Microsoft"의 셀 B21 값이 시트 "SN 사용자 이름"의 열 A : B에 있는지 확인합니다. 발견되면 셀 A21에 두 번째 열을 반환합니다 (필요에 따라 수정할 수 있음). 그렇지 않으면 참조 용으로 "Item Not Found"라는 텍스트 메시지를 A21 셀에 넣습니다.
Option Explicit
Sub VLookup_withErrHandling()
Dim Cell As Range
Dim Rng As Range
Dim lRow As Range
Set Cell = Sheets("Microsoft").Range("B21")
Set Rng = Sheets("SN Username").Range("A:B")
If Not IsError(Application.VLookup(Cell, Rng, 2, False)) Then
Cell.Offset(0, -1).Value = Application.VLookup(Cell, Rng, 2, False)
Else
Cell.Offset(0, -1).Value = "Item Not Found"
End If
End Sub
For
루프 추가 :
Dim lRow As Long
' just for example, loop from row 21 until row 30
For lRow = 21 To 30
Set Cell = Sheets("Microsoft").Range("B" & lRow)
If Not IsError(Application.VLookup(Cell, Rng, 2, False)) Then
Cell.Offset(0, -1).Value = Application.VLookup(Cell, Rng, 2, False)
Else
Cell.Offset(0, -1).Value = "Item Not Found"
End If
Next lRow
편집 1 : 당신이 당신의 "마이크로 소프트"시트에서 많은 행을 반복 할 경우에, 당신은 아래의 코드 조각을 추가 할 수 있습니다 : 아래 수정 된 메모에 따라
Option Explicit
Sub VLookup_withErrHandling()
Dim Cell As Range
Dim Rng As Range
Dim LastRow As Long
Dim lRow As Long
With Sheets("SN Username")
' find last row with username in column A
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set Rng = Sheets("SN Username").Range("A2:B" & LastRow)
End With
' loop through row 2 until row 20
For lRow = 2 To 20
Set Cell = Sheets("Microsoft").Range("A" & lRow)
If Not IsError(Application.VLookup(Cell.Value, Rng, 2, False)) Then
Cell.Offset(0, 1).Value = Application.VLookup(Cell.Value, Rng, 2, False)
Else
Cell.Offset(0, 1).Value = "UserName Not Found in SN UserNames sheet"
End If
Next lRow
End Sub
사이트를 제대로 검색 했습니까? 나는이 질문을 여러 번 보았다. 도움을 받으려면 다음 링크를 참조하십시오. [http://stackoverflow.com/questions/40512439/how-to-get-vlookup-to-select-down-to-the-lowest-row-in-vba/40512623# 40512623] :) – user1
정확하게 이해하면 vlookup의 결과를 B21에 넣고 싶지만 B21을 매개 변수로 전달하면 순환 참조가 발생합니다. 오류 또는 예기치 않은 동작에 대한 세부 정보를 게시하면 도움이됩니다. – jsheeran
@Shah Miah 'Application.VLookup'으로 VLOOKUP의 VBA 버전을 사용할 수 있습니다. 필요에 맞는 솔루션 유형에 달려 있습니다. 아래 내 대답을 확인하고 그것이 당신을 위해 작동하는지 알려 주시기 바랍니다 –