본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 엑셀

엑셀 VBA를 이용한 워크시트 병합 방법

by 포탈메이커 2023. 6. 23.

엑셀 VBA를 이용한 워크시트 병합 방법

Excel은 데이터를 보기 좋게 정리하고, 처리하고, 분석하기 위한 도구로 많은 사람들이 사용하고 있습니다. 특히 대용량 데이터를 다루는 경우, 많은 워크시트가 필요해지는데, 이때 워크시트를 병합하는 것이 필요할 수 있습니다.

이번 글에서는 VBA를 이용해 워크시트를 병합하는 방법에 대해 알아보도록 하겠습니다.


1. 워크시트 병합 방법

Excel에서는 여러 워크시트를 선택하여 병합하는 기능을 제공합니다. 이 기능을 사용하면 간편하게 워크시트를 병합할 수 있습니다.

  1. 병합하려는 워크시트를 선택합니다.
  2. "복사"를 클릭합니다.
  3. 병합하려는 워크시트가 있는 위치에 마우스 오른쪽 버튼을 클릭합니다.
  4. "삽입 옵션"을 클릭하고, "서식 유지" 또는 "동적 링크" 중 선택합니다.
    • "서식 유지"는 원본 워크시트 서식을 그대로 유지합니다.
    • "동적 링크"는 원본 워크시트가 변경될 때, 삽입된 새 워크시트도 함께 변경됩니다.
  5. "확인"을 클릭하면 병합이 완료됩니다.

하지만 이 방법은 워크시트의 수가 매우 많아질 경우, 일일이 선택해야 하기 때문에 번거로울 수 있습니다. 따라서 VBA를 이용해 자동으로 병합하는 코드를 작성할 수 있습니다.


2. VBA 코드를 이용한 자동 병합

VBA 코드를 이용하면 자동으로 워크시트를 병합할 수 있습니다. 아래 코드를 참고하여 작성하시면 됩니다.

 

Sub MergeWorksheets()
    Dim SummarySheet As Worksheet
    Dim WorkSheet As Worksheet

    ' 새 요약 워크시트 생성
    Set SummarySheet = ThisWorkbook.Worksheets.Add
    SummarySheet.Name = "Summary"

    ' 모든 워크시트를 순회하면서 요약 워크시트에 복사
    For Each WorkSheet In ThisWorkbook.Worksheets
        If WorkSheet.Name <> SummarySheet.Name Then
            ' 데이터 복사
            WorkSheet.Range("A1", WorkSheet.Cells.SpecialCells(xlLastCell)).Copy
            ' 요약 시트의 마지막 셀 아래에 데이터 붙여넣기
            SummarySheet.Cells.SpecialCells(xlLastCell).Offset(1, 0).PasteSpecial xlPasteValues
        End If
    Next WorkSheet
End Sub

 

위 코드를 실행하면, 모든 워크시트의 데이터를 Summary 워크시트에 병합한 결과물을 얻을 수 있습니다.

위 코드는 모든 데이터를 복사하기 때문에 데이터 양이 매우 많을 경우, 처리 시간이 오래 걸릴 수 있습니다. 따라서 필요한 데이터 형식에 따라 코드를 수정하여 사용하시길 바랍니다.


3. 마치며

Excel에서는 간단한 기능으로 워크시트를 병합할 수 있지만, 일일이 선택해야 하는 번거로운 작업도 필요합니다. 이때 VBA를 이용하면 자동으로 워크시트를 병합하여 더욱 효율적으로 데이터를 관리할 수 있습니다. 위 코드를 참고하여 원하는 기능을 구현해 보시길 바랍니다.

 

포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!

행복한 하루 되세요!