¿cómo combinar varios libros de excel usando vba?

Para combinar varios libros de Excel, necesita usar algún código que le permita elegir qué archivos desea combinar o puede consultar una ubicación de ruta particular y combinar todos los archivos de Excel en el libro actual.

VBA combina varios libros de trabajo

Puede usar el siguiente código que usa la ubicación que mencioné en la variable de ruta (una carpeta en el escritorio de mi sistema).

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Path = "C:UsersDellDesktopsample-data" 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

Pasos para combinar archivos de Excel usando VBA

  1. Abra el Editor de Visual Basic (asegúrese de habilitar la pestaña Desarrollador si ya la tiene en la cinta).
    open the visual basic editor
  2. Después de eso, ubique el libro de trabajo actual desde la ventana del proyecto (control + r) e inserte un nuevo módulo en él.
    locate the current workbook
  3. Tendrás una ventana de código en el módulo (haz doble clic en él) donde deberás pegar el código que tienes (tal cual).
    code window in the module
  4. Desde aquí, debe cambiar el valor de la variable de ruta con la ubicación de la carpeta donde se encuentran todos los archivos de Excel que desea combinar.
    change the value for the path variable
  5. Al final, ejecute el código y obtendrá todas las hojas de trabajo del libro en el archivo actual.

Enlaces útiles: Ejecutar una macroGrabador de macrosEditor de Visual BasicManual de macros personales

Este código abre cada archivo uno por uno, copia cada hoja de trabajo una por una y las pega en el archivo actual con el mismo nombre. Aquí está el mismo código pero con la pantalla actualizándose a falso al principio para ejecutar todo en el backend.

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False Path = "C:UsersDellDesktopsample-data" 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 Application.ScreenUpdating = True End Sub

Nota: Si desea aprender cómo combinar datos de varios libros de trabajo en una sola tabla, asegúrese de consultar esta guía.

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *