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
동일 파일, 워크시트 내에서 시트 둘을 비교하여 내용을 삭제 할 때 사용합니다.
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
'엑셀' 카테고리의 다른 글
엑셀 현재 작업 워크시트 파일에 다른 파일의 시트들을 불러와 합치는 매크로 함수(시트 불러오기, 시트 머지, 시트 병합, 시트 합치기) (0) | 2021.05.22 |
---|---|
엑셀 에서 현재 열을 맨 마지막 열에 복사 하는 매크로 (0) | 2021.05.22 |
엑셀 전체 글에서 특정 단어, 글자, 숫자를 한 번에 바꾸고, 지우는 방법 (0) | 2021.05.22 |
주민번호에서 생년월일을 추출 할 때 유용한 엑셀 함수 두 가지 (0) | 2021.05.22 |
선택한 셀에 있는 값들을 현재 셀에 문자열로 연결 (0) | 2021.05.22 |