본문 바로가기

엑셀

특정 파일과 비교, 혹은 시트 끼리 비교 삭제 매크로

320x100

파일의 특정 시트를 비교하여 참조하는 시트에 없는 타겟 시트의 열을 전부 삭제해줍니다. 시트 비교 삭제 매크로는 동일한 파일내에서 시트 둘을 비교하여 참조 시트에 없는 타겟 시트의 열을 전부 삭제해줍니다.

한 번 지우면 복구하기가 복잡 할 수 있으니, 꼭 백업 파일을 생성해둔 다음 작업하시고, 첨부로 예제 파일 넣었습니다. 첨부파일 'compareAndDelete'파일에서 바로 작업할 수 있게 하였고, 시트 비교로 삭제하는 매크로도 같이 넣었습니다.

 

 

 

Sub CompareAndDel()

    Dim i, j, k As Integer

    Dim wb1 As Workbook, wb2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet

    '비교할 원본 파일
    Set wb1 = Workbooks.Open(Filename:="C:\Users\USER\Desktop\Book1.xlsx", ReadOnly:=True)
    
    '지우고 싶은 내용이 있는 파일
    Set wb2 = Workbooks.Open(Filename:="C:\Users\USER\Desktop\Book2.xlsx", ReadOnly:=True)
     
    Set shA = wb1.Sheets("Sheet1") '비교할 원본 파일 시트
    Set shB = wb2.Sheets("Sheet1") '지우고 싶은 내용이 있는 파일 시트
        
    For i = shB.UsedRange.Rows.Count To 1 Step -1
    k = False
    For j = 1 To shA.UsedRange.Rows.Count
        If shB.Cells(i, 1).Value = shA.Cells(j, 1).Value Then
           k = True
        End If
    Next
    If k = False Then
        shB.Rows(i).Delete
    End If
    Next
End Sub

compareAndDelete.xlsm
0.02MB

동일 파일, 워크시트 내에서 시트 둘을 비교하여 내용을 삭제 할 때 사용합니다.

Sub compareAndDelete()

Dim i As Integer
Dim j As Integer
Dim k As Boolean
Dim shA As Worksheet
Dim shB As Worksheet

Set shA = Sheets("Sheet1") '동일 워크시트에서 원본
Set shB = Sheets("Sheet2") '동일 워크시트에서 타겟

For i = shB.UsedRange.Rows.Count To 1 Step -1
    k = False
    For j = 1 To shA.UsedRange.Rows.Count
        If shB.Cells(i, 1).Value = shA.Cells(j, 1).Value Then
           k = True
        End If
    Next
    If k = False Then
        shB.Rows(i).Delete
    End If

Next
End Sub
728x90