엑셀 / VBA / 여러 시트의 내용을 하나의 시트에 모으는 방법
Created 2022-02-28
Last Modified 2022-12-27
동일한 형식에 내용만 다른 여러 시트의 데이터를 하나로 합치는 방법을 알아본다.
예를 들어 다음과 같은 엑셀 문서가 있다고 하자. 첫 번째 시트는 합쳐진 데이터가 모일 시트이고, 나머지 세 개는 데이터가 있는 시트이다.
[개발 도구]의 [Visual Basic]을 클릭한다.(만약 개발 도구 메뉴가 없다면 여기의 안내대로 개발 도구를 추가한다.)
[삽입]의 [모듈]을 클릭한다.
다음과 같이 코드를 입력한다.
Sub Merge() Sheets(1).Activate '첫 번째 시트로 이동 ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택 Selection.Delete '선택한 셀 삭제 Sheets(2).Activate '두 번째 시트로 이동 ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택 Selection.Copy Destination:=Sheets(1).Range("A1") '첫 번째 시트에 붙여넣기 ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택 Dim I As Integer For I = 3 To 4 Sheets(I).Activate 'I 번째 시트로 이동 ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택 Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select '선택에서 1행 제외 Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2) '첫 번째 시트에 붙여넣기 ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택 Next Sheets(1).Activate '첫 번째 시트로 이동 ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택 End Sub
다음의 순서로 작업하는 코드이다.
- 첫 번째 시트를 선택하고 내용을 지운다.
- 두 번째 시트의 내용을 복사하여 첫 번째 시트에 붙여넣는다.
- 나머지 시트의 내용을 복사하여 첫 번째 시트에 붙여넣는다.
두 번째 시트에 대한 코드와 나머지 시트에 대한 코드가 다른 이유는 머리글 때문이다.
이제 [개발 도구]의 [매크로]를 클릭한다. 단축키는 Alt+F8이다.
Merge를 선택하고 [실행]을 클릭한다.
다음처럼 첫 번째 시트에 데이터가 다 모인다.