2013-06-04 2 views
2

두 개의 시트에서 값을 비교해야하며 두 열 모두 2에서 시작하는 열 H에 ​​있습니다. 한 시트는 최종이라고 표시되고 다른 시트는 다른 데이터로 표시됩니다. 최종 데이터가 아니라 최종 데이터 인 경우 마지막으로 강조 표시합니다. 데이터에서 발견 된 것이 최종본에 없으면 맨 아래의 마지막 (전체 행)으로 복사합니다. 모든 텍스트입니다. 열 H는 "참조"라는 제목입니다.두 개의 개별 시트에서 두 개의 개별 열 비교

답변

0

코드 1

Private Sub Worksheet_Change(ByVal Target As Range) 

    Application.EnableEvents = False 
    If Target.Column <> 8 Then Exit Sub 

    Dim lastRow As Long 
    Dim rng As Range, cell As Range 

    lastRow = Range("H" & Rows.Count).End(xlUp).Row 
    If lastRow < 2 Then lastRow = 2 

    Set rng = Range("H2:H" & lastRow) 

    For Each cell In rng 

     With Sheets("data") 
      a = Application.VLookup(cell.Value, .Range("H2:H" & .Range("H" & Rows.Count).End(xlUp).Row), 1, 0) 

      If IsError(a) Then 
       cell.Interior.Color = vbYellow 
       Else 
       cell.Interior.Color = xlNone 
      End If 
     End With 

    Next 

    Application.EnableEvents = True 
End Sub 

코드 내가 직장에서 내일을 시도하고 다시 연락합니다 2

Private Sub Worksheet_Change(ByVal Target As Range) 

    Application.EnableEvents = False 
    If Target.Column <> 8 Then Exit Sub 

    Dim lastRow As Long 
    Dim rng As Range, cell As Range 

    lastRow = Range("H" & Rows.Count).End(xlUp).Row 
    If lastRow < 2 Then lastRow = 2 

    Set rng = Range("H2:H" & lastRow) 

    For Each cell In rng 

     With Sheets("final") 
      a = Application.VLookup(cell.Value, .Range("H2:H" & .Range("H" & Rows.Count).End(xlUp).Row), 1, 0) 

      If IsError(a) Then 
       cell.Copy .Range("H" & .Range("H" & Rows.Count).End(xlUp).Row) 
      End If 
     End With 

    Next 

    Application.EnableEvents = True 
End Sub 

enter image description here

+0

타이들. – user2453057

+0

설명대로 정보를 입력했지만 다른 매크로는 실행되지 않으므로 아무 일도 일어나지 않습니다. 이 문제를 계속해서 해결할 수 있도록 저에게이 사실을 설명해 주시겠습니까? – user2453057

+0

@ user2453057 이미지에 표시된대로 시트 코드 섹션에 코드를 넣었는지 확인하십시오. 또한 매크로가 이벤트에 응답 할 수 있도록'Application.EnableEvents = True'를 보장하십시오. H 열의 워크 시트가 변경되면 매크로가 트리거됩니다. – Santosh

관련 문제