반응형
거래처에서 통장거래내역이나 카드승인내역을 엑셀 파일로 받을 때 하나의 시트에 통합하지 않고 여러 개의 시트에 월별로 보내주는 경우가 간혹 있습니다.
복사붙여넣기도 방법이지만, 통장이 수십 개씩 되는 거래처에서 그렇게 보내준다면 복사붙여넣기도 번거로운 일이기도 하고, 무엇보다 사람이 하는 복사 붙여넣기는 실수가 발생할 수 있습니다.
이럴 때 사용하는 방법입니다.
테이블의 구조가 같아야 합니다.
위와 같은 상황에서 통합할 첫 번째 시트에서 'Alt+F11' 키를 누르면 위 갈무리처럼 VB 창이 열립니다.
열린 VB 창에서 '삽입 → 모듈' 메뉴로 들어갑니다.
모듈창이 열리면 위와 같이 아래의 코드를 모듈 창에 복사붙여넣기 해줍니다.
Sub Combine()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
이후 모듈창이 활성화된 상태에서 'F5' 키를 눌러주면 끝입니다.
위 갈무리와 같이 'Combined' 시트가 새로 생겼습니다.
새로 생성된 시트를 병합전의 시트들과 비교해 보면 제대로 병합이 된 것을 확인할 수 있습니다.
Macro for combining multiple worksheets into one worksheet - Microsoft Community
반응형