본문 바로가기

엑셀 눈감고도 쓰기/VBA

VBA - 간단한 엑셀시트합치기

 

 

아주 유용한 VBA 함수 ^^

여러 엑셀 파일을 하나의 sheet에 합칠 수가 있습니다.






Sub 파일병합()

    Dim Files As Variant
    Dim FileName As Variant
    Dim sht As Worksheet
    Dim wb As Workbook
    Dim rngTarget As Range

    Files = Application.GetOpenFilename(filefilter:="total Files(*.*),*.*", Title:="파일선택", MultiSelect:=True) 
    'Files = Application.GetOpenFilename(filefilter:="Excel Files(*.csv),*.csv", Title:="파일선택", MultiSelect:=True)
    '여러개 파일이 선택가능하도록 multiselect속성을 '참'으로 한다
    Set sht = Worksheets("Sheet1")   

    For Each FileName In Files
        Set wb = Workbooks.Open(FileName)
        Set rngTarget = sht.Range("a65536").End(xlUp).Offset(1, 0)
    
        wb.Worksheets(1).UsedRange.Copy rngTarget
        '선택한 개별파일들의 usedrange를 복사해서 타겟 시트인 '정리'시트에 붙인다

        Application.CutCopyMode = False
        wb.Close savechanges:=False
    Next FileName 
End Sub