본문 바로가기

엑셀

엑셀 현재 작업 워크시트 파일에 다른 파일의 시트들을 불러와 합치는 매크로 함수(시트 불러오기, 시트 머지, 시트 병합, 시트 합치기)

320x100

엑셀로 작업 할 때 다른 파일의 시트들을 불러와 합쳐서 작업해야 할 때 시트를 복사 / 이동하는 방법과 한꺼번에 파일 전체 시트를 불러와 합쳐주는 매크로 함수 입니다.

복사 해야 할 시트가 많지 않은 경우

1. 이동 / 복사 할 대상 엑셀 파일을 열어 둔 다음 아래와 같이 시트 탭에서 우측 버튼을 누르고,

2. 이동 / 복사 메뉴에서 현재 시트들을 이동 시킬 대상 파일을 선택 한 다음,

 

 

3. 시트 들이 복사 / 이동 했을 때의 위치를 정해준 후 복사본 만들기를 체크 해 주고 확인 버튼을 누르면 선택한 엑셀 파일로 선택 한 시트 들이 복사됩니다.

복사 해야 할 시트가 많을 때

시트가 많아 일일이 복사하기가 번거로울 때 한번에 시트들을 불러와 합쳐주는 매크로 함수입니다.(시트 병합, 시트 머지)

[ 매크로 저장, 사용 방법 ]

1. 아래 스크립트 글 상자의 내용 전체를 드래그 하여 선택 한 다음 컨트롤(Ctrl) + C 키를 눌러 스크립트를 클립보드에 복사 해줍니다.

Sub mergeWs()

   Application.ScreenUpdating = False
   Dim thisWorkbook As Workbook, targetWorkbook As Workbook
   Dim sh As Worksheet
   Dim directory As String
   
   Set thisWorkbook = ActiveWorkbook
   
   directory = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
   
   'sample.xlsx 파일의 위치는 바탕화면
   Set closedBook = Workbooks.Open(directory & "sample.xlsx")
   For Each sh In closedBook.Sheets
      sh.Copy after:=thisWorkbook.Sheets(thisWorkbook.Sheets.Count)
   Next sh
   closedBook.Close SaveChanges:=False
   Application.ScreenUpdating = True

End Sub

2. 엑셀 파일을 열고, 알트(Alt) + F11키를 눌러 비주얼 베이직 창을 열어 준 다음, 아래와 같이 'VBAProject 문서명'을 마우스로 우측 클릭 한 후 삽입 > 모듈을 차례로 클릭합니다.

3. 가운데 나타나는 코드 에디터 창을 클릭하고, 컨트롤(Ctrl) + V를 눌러 복사 해뒀던 매크로를 붙여넣기 해줍니다.

4. 에디터 상단 도구 메뉴 위의 실행 버튼 []을 누르거나 F5 키를 눌러 mergeWs() 함수를 실행시키면, 매크로에 정의된 대로 '바탕화면에서' Sample.xls' 파일의 전체 시트 들을 현재 시트의 뒤에 빠짐없이 복사' 해줍니다.

5. 알트(Alt) + Q를 눌러 워크시트 화면으로 돌아와서 시트탭 부분을 보면 'Sample.xls' 파일의 시트들이 전부 들어와 있을 것을 확인 할 수 있을 것입니다.

728x90