본문 바로가기
카테고리 없음

엑셀이용하기. 여러개의 엑셀 파일 통합하기 매크로(같은 템플릿의 엑셀 파일). 1-n개File_통합_Macro. 엑셀 파워쿼리 이용.

by holyspirit-lee 2025. 1. 5.

□  엑셀 파일 통합

파일이 100여 개나 되는데 이것을 일일이 '복사-붙여 넣기'해서 하나의 파일로 만든다거나 또는 위와 같이 일일이 하드 코딩을 해 주어야 한다면 많은 시간이 걸리고 어려움이 있다.

엑셀 파일 통합

1. 폴더를 하나 만들고

2. 병합하고자 하는 파일들을 옮겨 놓는다.

3. 대화 상자에서 Ctrl 키나 Shift 키를 누른 채 파일을 선택하면 여러 개의 파일을 동시에 선택할 수 있다.

 엑셀 파일 통합 매크로

Sub ConsolWorkbook()

    Dim varFileName As Variant
    Dim varTemp As Variant
    Dim shtSheet As Worksheet
    Dim wrkBook As Workbook
    Dim rngCell As Range
    Dim i As Integer
    Dim rngTarget As Range
    Application.ScreenUpdating = False
    varFileName = Application.GetOpenFilename(filefilter:="Excel Files(*.xls),*.xls", Title:="작업파일을 모두 선택하세요", MultiSelect:=True)
    ' GetOpenFilename 메서드를 이용하여 열기 대화 상자를 표시하고 사용자가 선택한
    ' 파일 이름을 얻을 준비를 한다.    
    If TypeName(varFileName) = "Boolean" Then Exit Sub
    Set shtSheet = Worksheets.Add
    shtSheet.Move after:=Sheets(Sheets.Count)
    ' 워크시트를 한장 삽입하고 워크북의 맨 마지막으로 이동시킨다.
    For Each varTemp In varFileName
    ' 선택된 파일(들)에 대해 순환문을 실행한다.
        Set wrkBook = Workbooks.Open(varTemp)
        Set rngTarget = shtSheet.Cells(65536, 1).End(xlUp).Offset(1, 0)
        ' 선택된 파일을 열고, 현재 워크북의 마지막 시트(shtSheet) 중에서 데이터가 들어있는
        ' A열의 마지막 셀 바로 아래 Range를 rngTarget Range 오브젝트 변수로 지정한다.
        ' 그래야 데이터를 계속 붙여 나갈 수 있다.         
        wrkBook.Worksheets(1).UsedRange.Offset(0, 0).Copy rngTarget
        ' 편의상 선택된 파일의 첫번째 워크시트 내용만 복사를 하는 것으로 만들었다.
        ' 여러 시트의 내용을 복사하시려면 이 부분에 순환문을 한번 더 중첩하면 된다.
        ' 이것은 여러분이 직접 해 보시기 바란다.
        Application.CutCopyMode = False
        wrkBook.Close savechanges:=False
        i = i + 1
    Next varTemp
    If i = 0 Then
        MsgBox "오류가 발생하였습니다"
        GoTo ET
        ' 만약 비정상적인 형태의 파일이 선택되었다면 오류 메시지를 띄우고 에러 트래핑 구문을 ' 실행한다.
    End If
    Application.ScreenUpdating = True
    MsgBox "파일 통합 작업을 완료하였습니다", , "http://www.iExceller.com"
ET:
End Sub

□  사용용방법 : 1-n개 File_통합_macro.xlsm

1. 폴더에 합치고 싶은 엑셀파일을 모두 넣는다
2. 엑셀통합프로그램을 실행한다
3. 보안옵션을 해제한다
4. 신통한 문서통합 Click Me!!!란 버튼을 클릭한다.
5. 폴더에 합치고 싶은 엑셀을 모두  선택한다(모두선택방법은 여러가지-마우스드래그하기 또는 Ctrl 키나 Shift 키를 누른 채 파일을 선택 등)
6. 열기 버튼을 누른다
7. 엑셀통합프로그램의 새로운 시트에 자동으로 합쳐진 화일이 생성된다.

1-n개File_통합_Macro.xlsm
0.02MB

 

 

 

□ 엑셀 파워쿼리 이용

Office 2016버전부터는 파워쿼리가 내장되어 있지만 그 이전버전을 사용하시는 분들을 아래 링크를 통해 확장 프로그램을 받으시길 바란다.

https://www.microsoft.com/ko-kr/download/details.aspx?id=39379

 

 

1. 사전 준비하기(폴더에 합칠 파일 모아두기) :  합치고자 하는 파일들을 하나의 폴더에 저장

사전 준비하기(폴더에 합칠 파일 모아두기)

2. 엑셀 파워쿼리 실행하기 : [데이터] -> [데이터 가져오기] -> [파일에서] -> [폴더에서] 클릭

엑셀 파워쿼리 실행하기

3. 데이터를 가져올 폴더 선택하기 : 1번에서 파일들을 저장한 폴더를 찾아서 [열기] 클릭

데이터를 가져올 폴더 선택

4. 결합 및 로드 클릭 : 미리 보기 데이터에서 폴더 내 파일이 정상적으로 추가되었는지 확인 후, [결합] - [결합 및 로드] 클릭

결합 및 로드 클릭

5. 매개 변수 테이블 선택 : 선택한 폴더의 파일 중 1개가 대표로 선택되며, '파일 병합'미리보기에서 병합하고자 하는 시트 선택 후 확인

매개 변수 테이블 선택

6. 최종 데이터 확인 : 파일의 테이블 정보가 하나로 병합되었는지 확인