공책

엑셀 VBA 매크로 이용하여 다른파일로 모든 시트 복사하기 본문

VBA

엑셀 VBA 매크로 이용하여 다른파일로 모든 시트 복사하기

QTHoney 2016. 3. 9. 14:06

데이터가 있는 원본 파일에 매크로를 작성하고 실행시에도 활성화 상태로 둡니다.(선택된상태)

대상이 될 엑셀 파일명을 target.xlsx로 하던지 원하는 파일명을 하단에 targetName 부분에 넣어줍니다.(원본파일과 대상파일 둘다 열린상태)

원본 파일 매크로에 아래 내용을 입력하고 실행합니다.


Sub sheetCopy()

    Dim x As Integer

    Dim fileName As String

    fileName = ActiveWorkbook.Name

    Const targetName As String = "target.xlsx"

    Dim targetCount As Integer


    Workbooks(targetName).Sheets.Add After:=Workbooks(targetName).Sheets(Workbooks(targetName).Sheets.Count)

   

    Application.DisplayAlerts = False

    For i = 1 To Workbooks(targetName).Sheets.Count

        If Workbooks(targetName).Sheets.Count > 1 Then Workbooks(targetName).Sheets(1).Delete

    Next

   

    For x = 1 To Workbooks(fileName).Sheets.Count

       Workbooks(fileName).Sheets(x).Copy _

          Before:=Workbooks(targetName).Sheets(Workbooks(targetName).Sheets.Count)

    Next

    

    Workbooks(targetName).Sheets(Workbooks(targetName).Sheets.Count).Delete

    Application.DisplayAlerts = True

   

End Sub

Comments