2013-09-27 3 views
2

이 매크로가 작동하는 데 문제가 있습니다. vlookup 함수를 통해 다른 시트의 해당 값과 같지 않으면 범위를 반복하고 셀을 hilight합니다.for 루프 내의 VBA에서의 Vlookup

For Each cell In Worksheets("Sheet1").Range("A2:A1000") 
If cell <> Application.WorksheetFunction.VLookup(cell, Worksheets("Sheet2").Range("C3:E128"), 3, 0) Then 
cell.Interior.Color = 65535 
Else 
End If 

다음 세포가 반환 유지

:하지만이 코드에 오류가 계속 "런타임 오류 '1004'다음 WorksheetFunction 클래스의 VLOOKUP 속성을 가져올 수 없습니다"

을 어떤 통찰력이라도 대단히 감사합니다 !!

+0

vlookup에서 일치하는 항목을 찾지 못하면 오류가 발생합니다. 여기서 목표가 무엇입니까? 당신은 단지 ColC의 값이 각 조회 값의 ColD와 일치하는지 확인하는 코드입니다 ... –

답변

2

VLOOKUP은 할 수 없기 때문에 당신은 그 오류를 얻고있다에게 시도 발생합니다 무엇이든 찾아서 돌려주는 것. 여러 가지 방법으로 처리 할 수 ​​있습니다. 한 가지 예가 있습니다.

Sub Sample() 
    Dim cell As Range 
    Dim Ret 

    For Each cell In Worksheets("Sheet1").Range("A2:A1000") 
     On Error Resume Next 
     Ret = Application.WorksheetFunction.VLookup(cell, _ 
       Worksheets("Sheet2").Range("C3:E128"), 3, 0) 
     On Error GoTo 0 

     If Ret <> "" Then 
      If cell <> Ret Then 
       cell.Interior.Color = 65535 
      End If 
      Ret = "" 
     End If 
    Next 
End Sub 
0

일반적으로 "WorksheetFunction의 .... 속성을 가져올 수 없습니다"는 함수에 전달 된 인수에 문제가 있기 때문에 발생합니다. 당신의 범위 내에서 셀에 오류가있는 경우

예를 들어,이

1

이 코드

WorksheetFunction.Vlookup v/s Application.Vlookup

On Error Resume Next 

For Each cell In Worksheets("Sheet1").Range("A2:A1000") 
    Result = Application.VLookup(cell, Worksheets("Sheet2").Range("C3:E128"), 3, 0) 

    If Result = "Error 2042" Then 
     'nothing found 
    ElseIf cell <> Result Then 
     cell.Interior.Color = 65535 
    End If 

Next 

On Error GoTo 0