Skip to main content

¿Cómo recorrer libros de trabajo en un directorio y copiar datos en una hoja maestra en Excel?

Author: Siluvia Last Modified: 2025-08-06

Supongamos que tienes varios libros de Excel en una carpeta y necesitas recorrer todos estos archivos para copiar datos de un rango específico en una hoja de cálculo consistente (por ejemplo, Hoja1) en una hoja maestra. Esta guía proporciona una solución VBA detallada para agilizar este proceso en Excel.

Recorre libros de trabajo en un directorio y copia datos en una hoja maestra con código VBA


Recorre archivos en un directorio y copia datos en una hoja maestra con código VBA

Si deseas copiar datos del rango A1:D4 en todas las hojas Hoja1 de los libros de trabajo en una carpeta específica y pegarlos en una hoja maestra, sigue los siguientes pasos.

1. En el libro donde crearás la hoja maestra, presiona las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. En la ventana de Microsoft Visual Basic para Aplicaciones, haz clic en Insertar > Módulo. Luego, copia el siguiente código VBA en la ventana de código.

Código VBA: recorrer archivos en una carpeta y copiar datos en una hoja maestra

Sub Merge2MultiSheets()
    Dim xRg As Range
    Dim xSelItem As Variant
    Dim xFileDlg As FileDialog
    Dim xFileName, xSheetName, xRgStr As String
    Dim xBook, xWorkBook As Workbook
    Dim xSheet As Worksheet
    On Error Resume Next
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    xSheetName = "Sheet1"
    xRgStr = "A1:D4"
    Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    With xFileDlg
        If .Show = -1 Then
            xSelItem = .SelectedItems.Item(1)
            Set xWorkBook = ThisWorkbook
            Set xSheet = xWorkBook.Sheets("New Sheet")
            If xSheet Is Nothing Then
                xWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"
                Set xSheet = xWorkBook.Sheets("New Sheet")
            End If
            xFileName = Dir(xSelItem & "\*.xlsx", vbNormal)
            If xFileName = "" Then Exit Sub
            Do Until xFileName = ""
               Set xBook = Workbooks.Open(xSelItem & "\" & xFileName)
                Set xRg = xBook.Worksheets(xSheetName).Range(xRgStr)
                xRg.Copy xSheet.Range("A65536").End(xlUp).Offset(1, 0)
                xFileName = Dir()
                xBook.Close
            Loop
        End If
    End With
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Nota:

1). En el código, “A1:D4” y “Hoja1” significan que los datos en el rango A1:D4 de todas las hojas Hoja1 se copiarán en la hoja maestra. Y “Nueva Hoja” es el nombre de la nueva hoja maestra creada.
2). Los archivos de Excel en la carpeta específica no deben estar abiertos.

3. Presiona la tecla F5 para ejecutar el código.

4. En la ventana Examinar que aparece, selecciona la carpeta que contiene los archivos que recorrerás y luego haz clic en el botón Aceptar. Ver captura de pantalla:

A screenshot of the Browse dialog box in Excel for selecting a folder containing files to loop through

Luego, se crea una hoja de trabajo maestra llamada “Nueva Hoja” al final del libro de trabajo actual. Y los datos en el rango A1:D4 de todas las hojas Hoja1 en la carpeta seleccionada se enumeran dentro de la hoja de trabajo.


Artículos relacionados:

Las mejores herramientas de productividad para Office

🤖 Asistente de IA de Kutools: Revoluciona el análisis de datos basado en: Ejecución inteligente |Generar código |Crear fórmulas personalizadas |Analizar datos y generar gráficos |Invocar funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda con múltiples criterios | Búsqueda de múltiples valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente listas desplegables | Lista desplegable dependiente | Lista desplegable con selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Cambiar la visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de libros y hojas de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Encriptar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtro negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y mucho más
Utiliza Kutools en tu idioma preferido: ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...


Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
  • ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!