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.