Saltar al contenido principal

¿Cómo combinar varios libros de trabajo en un libro de trabajo maestro en Excel?

¿Alguna vez se ha quedado atascado cuando tiene que combinar varios libros de trabajo en un libro de trabajo maestro en Excel? Lo más terrible es que los libros de trabajo que necesita combinar contienen varias hojas de trabajo. ¿Y cómo combinar solo las hojas de trabajo especificadas de varios libros de trabajo en un libro de trabajo? Este tutorial muestra varios métodos útiles para ayudarlo a resolver el problema paso a paso.


Combine varios libros de trabajo en un solo libro con la función Mover o Copiar

Si solo es necesario combinar un par de libros de trabajo, puede usar el comando Mover o Copiar para mover o copiar manualmente hojas de trabajo del libro de trabajo original al libro de trabajo maestro.

1. Abra los libros de trabajo que fusionará en un libro de trabajo maestro.

2. Seleccione las hojas de trabajo en el libro de trabajo original que moverá o copiará al libro de trabajo maestro.

Notas

1). Puede seleccionar varias hojas de trabajo no adyacentes sosteniendo el Ctrl y haciendo clic en las pestañas de la hoja una por una.

2). Para seleccionar varias hojas de trabajo adyacentes, haga clic en la pestaña de la primera hoja, mantenga presionado el Shift y luego haga clic en la pestaña de la última hoja para seleccionarlas todas.

3). Puede hacer clic derecho en cualquier pestaña de la hoja, hacer clic en Seleccionar todas las hojas en el menú contextual para seleccionar todas las hojas de trabajo en el libro de trabajo al mismo tiempo.

3. Después de seleccionar las hojas de trabajo necesarias, haga clic con el botón derecho en la pestaña de la hoja y luego haga clic en Mover o copiar desde el menú contextual. Ver captura de pantalla:

4. Entonces el Mover o copiar aparece el diálogo, en el Reservar menú desplegable, seleccione el libro de trabajo maestro al que moverá o copiará las hojas de trabajo. Seleccione mover para terminar en el Antes de la hoja casilla, marque la Crea una copia cuadro, y finalmente haga clic en el OK del botón.

Luego, puede ver las hojas de trabajo en dos libros combinados en uno. Repita los pasos anteriores para mover hojas de trabajo de otros libros al libro maestro.


Combine varios libros de trabajo u hojas específicas de libros de trabajo en un libro de trabajo maestro con VBA

Si es necesario fusionar varios libros de trabajo en uno, puede aplicar los siguientes códigos VBA para lograrlo rápidamente. Haz lo siguiente.

1. Coloque todos los libros de trabajo que desee combinar en uno solo en el mismo directorio.

2. Inicie un archivo de Excel (este libro será el libro maestro).

3. presione el otro + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana. En el Microsoft Visual Basic para aplicaciones ventana, haga clic recuadro > Módulo, luego copie el código de VBA a continuación en la ventana del Módulo.

Código 1 de VBA: combine varios libros de Excel en uno

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xlsx")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub
	

Notas

1. El código VBA anterior conservará los nombres de las hojas de los libros de trabajo originales después de la fusión.

2. Si desea distinguir qué hojas de trabajo en el libro de trabajo maestro provienen de dónde después de la fusión, aplique el siguiente código VBA 2.

3. Si solo desea combinar hojas de trabajo específicas de los libros de trabajo en un libro de trabajo maestro, el código 3 de VBA a continuación puede ayudar.

En códigos VBA, "C: \ Usuarios \ DT168 \ Escritorio \ KTE \”Es la ruta de la carpeta. En el código 3 de VBA, "Hoja1, Hoja3"son las hojas de trabajo especificadas de los libros de trabajo que combinará en un libro de trabajo maestro. Puede cambiarlas según sus necesidades.

Código 2 de VBA: combine los libros de trabajo en uno (cada hoja de trabajo se nombrará con el prefijo de su nombre de archivo original):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Código 3 de VBA: combine hojas de trabajo específicas de libros de trabajo en un libro de trabajo maestro:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. presione el F5 clave para ejecutar el código. Luego, todas las hojas de trabajo o las hojas de trabajo especificadas de los libros de trabajo en la carpeta determinada se combinan en un libro de trabajo maestro a la vez.


Combine fácilmente varios libros de trabajo o hojas específicas de libros de trabajo en un libro de trabajo

Afortunadamente, el Combinar utilidad de libro de trabajo de Kutools for Excel hace que sea mucho más fácil fusionar varios libros en uno. Veamos cómo hacer que esta función funcione al combinar varios libros de trabajo.

Antes de aplicar Kutools for Excel, Por favor descargarlo e instalarlo en primer lugar.

1. Cree un nuevo libro de trabajo y haga clic en Kutools Más > Combinar. Luego aparece un cuadro de diálogo para recordarle que todos los libros de trabajo combinados deben guardarse y la función no se puede aplicar a los libros de trabajo protegidos, haga clic en el OK del botón.

2. En el Combinar hojas de trabajo asistente, seleccione Combine varias hojas de trabajo de libros de trabajo en un libro de trabajo opción, y luego haga clic en la Siguiente botón. Ver captura de pantalla:

3. En el Combinar hojas de trabajo - Paso 2 de 3 cuadro de diálogo, haga clic en Añada > Archive or carpeta para agregar los archivos de Excel se fusionará en uno. Después de agregar los archivos de Excel, haga clic en el Acabado y elija una carpeta para guardar el libro maestro. Ver captura de pantalla:

Ahora todos los libros de trabajo se fusionan en uno.

En comparación con los dos métodos anteriores, Kutools for Excel tiene las siguientes ventajas:

  • 1) Todos los libros y hojas de trabajo se enumeran en el cuadro de diálogo;
  • 2) Para las hojas de trabajo que desea excluir de la combinación, simplemente desmárquela;
  • 3) Las hojas de trabajo en blanco se excluyen automáticamente;
  • 4) El nombre del archivo original se agregará como prefijo al nombre de la hoja después de la fusión;
  • Para obtener más funciones de esta característica, por favor visita aqui.

  Si desea tener una prueba gratuita (30 días) de esta utilidad, haga clic para descargarloy luego vaya a aplicar la operación según los pasos anteriores.


Kutools para Excel - Te ayuda a terminar siempre el trabajo antes de tiempo, tener más tiempo para disfrutar la vida
¿Se encuentra a menudo tratando de ponerse al día con el trabajo, falta de tiempo para usted y su familia?  Kutools for Excel puede ayudarte a lidiar con 80% Sobresalga los rompecabezas y mejore la eficiencia del trabajo en un 80%, le da más tiempo para cuidar de la familia y disfrutar de la vida.
300 herramientas avanzadas para 1500 escenarios de trabajo, hacen que su trabajo sea mucho más fácil que nunca.
Ya no necesitas memorizar fórmulas y códigos VBA, dale un descanso a tu cerebro a partir de ahora.
Las operaciones complicadas y repetidas se pueden realizar con un procesamiento único en segundos.
Reduzca miles de operaciones de teclado y mouse todos los días, diga adiós a las enfermedades profesionales ahora.
Conviértase en un experto en Excel en 3 minutos, ayúdelo a obtener rápidamente un reconocimiento y una promoción de aumento de sueldo.
110,000 personas altamente efectivas y más de 300 empresas de renombre mundial.
Haga que sus $ 39.0 valgan más que $ 4000.0 en la capacitación de otros.
Prueba gratuita de todas las funciones durante 30 días. Garantía de devolución de dinero de 60 días sin motivo.

Comments (146)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have one workbook with 100+ sheets, I want to move all 100+ sheets into another workbook in a single sheet.
This comment was minimized by the moderator on the site
I had to read throught the comments to find suggestions that worked for my application of the VBA CODE 2, but I managed to get it to work doing the following things:
1. make sure to change "C:\Users\DT168\Desktop\KTE\" to your own directory to wherever you have your files are located. don't forget the extra "\" at the end!2. my spreadsheets were extension ".xls", so I deleted the extra "x" in this line, like so: xStrFName = Dir(xStrPath & "*.xlsx")3. I placed all my spreadsheets in a single folder, and only those files were the contents of that folder, the target macro enabled spreadsheet where this vba was running from was saved outside of this folder (hopefully this makes sense).
one thing that I didn't want to mess with though is I only needed to merge the 1st tab of each spreadsheet, but I didn't want to mess with the code so if each workbook you want to merge into one has multiple tabs, this code will grab all of the tabs on each workbook and place them in your target spreadsheet, I had to manually delete all the tabs I didn't want.
if the author of this vba could reply to me, how do you change the code to just copy the 1st tab as opposed to all the tabs?
thank you!
This comment was minimized by the moderator on the site
hi I want a change. If the the sheet name is same then the data should be appended in the same name sheet rather than adding a sheet. for example if i have 10 files with jan, feb, mar same sheetnames. then result should be 1 file having jan, feb, mar only 3 sheets with the data of all 10 files. thanks
This comment was minimized by the moderator on the site
Good morning,

Basically I have to copy the values of another file example c: \ test.xlsx (sheet name "date"):

I have to copy the values from A2: T20


And I have to paste in another Extract.xlsx file on the “Extracts” folder on A2.


PLEASE NOTE: You must run vba when opening the file.
This comment was minimized by the moderator on the site
Hello! I need to merge multiple files into one, that are password protected. All source files use the same password. What changes are needed to the first VBA script to merge the files without having to enter the password each time?
This comment was minimized by the moderator on the site
Hello any one can help me, I want to combine sheet 2 only from 5 different sheet, can you script for me.
This comment was minimized by the moderator on the site
you can use Array function to copy the multiple sheets to combine in one file
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
how to use VBA code 1 to amend and make it runs to combine all the .xlsx files into one excel file and each excel spreedsheet tab in the combined excel file should be named as original file name.thanks
This comment was minimized by the moderator on the site
What part of VBA code 3 specifies the name of the worksheet to be copied?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations