본문 바로가기
Study_공부/IT

[엑셀 매크로] 여러 파일 한번에 취합하는 방법 (Vba, 매크로 이용)

by smiletown10 2023. 6. 17.
반응형

아래코드를 엑셀파일의 개발도구 -> vba -> 모듈창에 복사해서 붙여넣어서 사용하시면 됩니다.

 

 

 

Sub CombineSheets()
    Dim FolderPath As String
    Dim FileName As String
    Dim CurrentWorkbook As Workbook
    Dim NewWorkbook As Workbook
    Dim ws As Worksheet
    
    ' 바탕화면의 RAW 폴더 경로 설정 / 바탕화면에 "RAW"라는 폴더가 있다고 가정했습니다.
    FolderPath = Environ("USERPROFILE") & "\Desktop\RAW\"
    
    ' 새로운 엑셀 파일 생성
    Set NewWorkbook = Workbooks.Add
    
    ' RAW 폴더에 있는 엑셀 파일들 순환 / 엑셀파일들의 파일 확장자 확인이 필요합니다
    FileName = Dir(FolderPath & "*.xlsx")
    Do While FileName <> ""
        ' 엑셀 파일 열기
        Set CurrentWorkbook = Workbooks.Open(FolderPath & FileName)
        
        ' 첫번째 시트 복사
        Set ws = CurrentWorkbook.Sheets(1)
        ws.Copy After:=NewWorkbook.Sheets(NewWorkbook.Sheets.Count)
        
        ' 엑셀 파일 닫기
        CurrentWorkbook.Close SaveChanges:=False
        
        ' 다음 파일로 이동
        FileName = Dir
    Loop
    
    ' 취합한 시트명 설정
    For Each ws In NewWorkbook.Sheets
        ws.Name = Left(ws.Name, Len(ws.Name) - 5) ' 파일명에서 ".xlsx" 제거
    Next ws
    
    ' 새로운 엑셀 파일 저장  / 새로운엑셀파일의명칭을 " Combined"라고 지정하였습니다.
    NewWorkbook.SaveAs FolderPath & "Combined.xlsx"
    
    ' 새로운 엑셀 파일 닫기
    NewWorkbook.Close SaveChanges:=False
    
    MsgBox "시트 취합이 완료되었습니다."
End Sub

반응형