다른 통합 문서 VBA에서 다른 워크시트 복사

다른 통합 문서 VBA에서 다른 워크시트 복사

워크시트를 복사한 다음 새 파일로 저장하는 매크로가 있습니다.

그런데 두 개의 워크시트를 복사하여 하나로 합치고 싶은데 워크시트가 서로 다른 두 개의 통합 문서에 있습니다.

예: workbook1에는 2개의 워크시트(worksheet1, worksheet2)가 포함되어 있습니다. workbook2에는 3개의 워크시트(worksheet1, worksheet2, worksheet3)가 포함되어 있습니다.

workbook1의 worksheet1과 workbook2의 worksheet1을 복사하고 싶습니다. 그런 다음 둘 다 동일한 테이블 형식을 가지므로 결합합니다.

어떻게 해야할지 모르겠습니다. 동일한 통합 문서에서 여러 워크시트를 복사하는 방법만 알고 있습니다. 또한 이를 결합하는 방법도 알고 있습니다. 유일한 문제는 workbook1과 workbook2인 다른 통합 문서에서 두 worksheet1을 어떻게 복사할 것인가입니다.

데이터 복사를 위한 간단한 코드만 있습니다. 그런데 내 코드는 다음과 같습니다.

saveFolder = "C:\Document\Macro"

path = "C:\Document\Workbook1"
fname = "Sample Account.xlsx"

Workbooks.Open path & fname
Sheets("Account1").Copy

ActiveWorkbook.SaveAs saveFolder & "\Conso.xlsx", FileFormat:=51
Workbooks(fname).Close

다른 파일은 폴더에 있습니다통합문서2파일 이름은추가 계정

답변1

이 VBA(매크로) 코드는 소스 통합 문서에서 선택한 워크시트를 복사하여 활성 책으로 결합하는 데 도움이 됩니다.

이 코드는 코드를 다양하게 만드는 표준이 아닌 대화형입니다.

Sub CombineSheets()
    Dim sPath As String
    Dim sFname As String
    Dim wBk As Workbook
    Dim wSht As Variant

    Application.EnableEvents = False
    Application.ScreenUpdating = False

   sPath = InputBox("Enter File Path Of Source Workbook(s)")

   ChDir sPath

   sFname = InputBox("Enter the Filename")

   sFname = Dir(sPath & "\" & sFname & ".xl*", vbNormal)

   wSht = InputBox("Enter Worksheet Name To Copy")

   Do Until sFname = ""

       Set wBk = Workbooks.Open(sFname)
        Windows(sFname).Activate
        Sheets(wSht).Copy Before:=ThisWorkbook.Sheets(1)
        wBk.Close False
        sFname = Dir()
    Loop
    ActiveWorkbook.Save
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

작동 방식:

  • 이 코드를 마스터 통합 문서(시트를 결합하려는)의 표준 모듈로 복사하여 붙여넣으세요.
  • 매크로를 실행하세요.
  • 먼저 원본 통합 문서에 대한 경로를 묻습니다.

메모,더 나은 파일 경로를 복사하여 붙여넣으세요.

  • 그런 다음 통합 문서 이름을 물어보세요. 와일드카드를 사용하거나 와 같은 통합 문서 이름을 사용할 수도 있습니다 Myworkbook.

  • 마지막으로 시트 이름을 복사하도록 요청합니다.

관련 정보