Copie diferentes hojas de trabajo de diferentes libros de trabajo vba

Copie diferentes hojas de trabajo de diferentes libros de trabajo vba

Tengo una macro que copiará las hojas de trabajo y luego las guardará como nuevas.

Pero quiero copiar dos hojas de trabajo y luego combinarlas en una, pero las hojas de trabajo están ubicadas en dos libros de trabajo diferentes.

por ejemplo: el libro de trabajo1 contiene 2 hojas de trabajo (hoja de trabajo1, hoja de trabajo2) el libro de trabajo2 contiene 3 hojas de trabajo (hoja de trabajo1, hoja de trabajo2, hoja de trabajo3)

Quiero copiar la hoja de trabajo1 del libro de trabajo1 y la hoja de trabajo1 del libro de trabajo2. luego combínalos ya que ambos tienen el mismo formato de tabla.

No sé cómo. Sólo sé cómo copiar varias hojas de trabajo del mismo libro. También sé cómo combinarlos, mi único problema es cómo voy a copiar ambas hojas de trabajo1 de un libro de trabajo diferente, que es el libro de trabajo1 y el libro de trabajo2.

Sólo tengo un código simple para copiar los datos. Aquí está mi código por cierto:

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

el otro archivo se encuentra en la carpetaLibro de trabajo2su nombre de archivo esCuentas Adicionales

Respuesta1

Este código VBA (Macro) le ayudará a copiar la hoja de trabajo de su elección del libro de trabajo fuente para combinarla en el libro activo.

Este Código es interactivo en lugar de estándar, lo que lo hace versátil.

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

Cómo funciona:

  • Copie y pegue este código como módulo estándar con el libro maestro (en el que desea combinar hojas).
  • Ejecute la macro.
  • Primero solicita una ruta a los libros de trabajo de origen.

Nota,mejor copie y pegue la ruta del archivo.

  • Luego pregunte el nombre del libro de trabajo, también puede usar comodines o el nombre del libro de trabajo como Myworkbook.

  • Finalmente solicita que se copie el nombre de la hoja.

información relacionada