2011년

여러 엑셀 시트를 복사해서 한 시트로 만들기

돼지여우 2011. 7. 13. 13:32

VB 메크로를 이용하여 어러 엑셀 시트의 데이터를 한 시트로 복사할 수 있다.


Sub all() 'Function 시작

    Dim sht As Worksheet
    Dim i As Integer
    Dim copyTarget As Range, copyRange As Range, copyStart As Range
          Set copyStart = Sheets("all").Range("a1") '붙여넣기 시작할 처음 셀 지정
     For Each sht In ThisWorkbook.Worksheets
        If sht.Name <> "all" Then '"all"는 각 시트의 내용을 모을 셀이므로 복사하면 안됨.
            Set copyRange = sht.UsedRange '각 시트의 usedRange를 복사하기 위해 지정
            Set copyTarget = copyStart.Offset(copyStart.SpecialCells(xlLastCell).Row + 1, 0) '복사해 붙여넣을 위치 지정
            copyRange.Copy copyTarget '각 시트를 복사해서 붙여넣을 셀로 붙여넣음
        End If
    Next
End Sub


이렇게 복사하면 시트의 크기는 조절이 안되고 데이터만 가져오게 된다.
엑셀 시트의 모양까지 그대로 복사는 안되는것인가... 연구 필요.!