Importar hojas usando Excel VBA - Macros de Excel fáciles

Tabla de contenido

A continuación, veremos un programa en Excel VBA ese importa hojas de otros archivos de Excel en un archivo de Excel.

Descargue Book4.xlsx, Book5.xlsx y agréguelos a "C: \ test \"

Situación:

Agregue las siguientes líneas de código al botón de comando:

1. Primero, declaramos dos variables de tipo String, un objeto Worksheet y una variable de tipo Integer.

Dim directorio como cadena, nombre de archivo como cadena, hoja como hoja de trabajo, total como entero

2. Desactive la actualización de la pantalla y la visualización de alertas.

Application.ScreenUpdating = Falso
Application.DisplayAlerts = Falso

3. Inicialice el directorio de variables. Usamos la función Dir para encontrar el primer * .xl ?? archivo almacenado en este directorio.

directorio = "c: \ prueba \"
fileName = Dir (directorio & "* .xl ??")

Nota: La función Dir admite el uso de comodines de varios caracteres (*) y de un solo carácter (?) Para buscar todos los tipos diferentes de archivos de Excel.

4. La variable fileName ahora contiene el nombre del primer archivo de Excel que se encuentra en el directorio. Agregue un bucle Do While.

Hacer mientras fileName ""
Lazo

Agregue las siguientes líneas de código (en 5, 6, 7 y 8) al ciclo.

5. No existe una forma sencilla de copiar hojas de trabajo de archivos de Excel cerrados. Por lo tanto, abrimos el archivo de Excel.

Workbooks.Open (directorio y nombre de archivo)

6. Importe las hojas del archivo de Excel a import-sheet.xlsm.

Para cada hoja de los libros de trabajo (nombre de archivo).
total = Libros de trabajo ("import-sheets.xlsm"). Worksheets.count
Libros de trabajo (nombre de archivo) .Hojas de trabajo (hoja.Nombre). Copiar _
after: = Workbooks ("import-sheets.xlsm"). Hojas de trabajo (total)
Siguiente hoja

Explicación: la variable total mantiene un registro del número total de hojas de trabajo de import-sheet.xlsm. Usamos el método Copiar del objeto Hoja de trabajo para copiar cada hoja de trabajo y pegarla después de la última hoja de trabajo de import-sheets.xlsm.

7. Cierre el archivo de Excel.

Libros de trabajo (nombre de archivo) .Cerrar

8. La función Dir es una función especial. Para obtener los otros archivos de Excel, puede usar la función Dir nuevamente sin argumentos.

fileName = Dir ()

Nota: cuando no coinciden más nombres de archivo, la función Dir devuelve una cadena de longitud cero (""). Como resultado, Excel VBA dejará el ciclo Do While.

9. Active la actualización de la pantalla y vuelva a mostrar las alertas (fuera del bucle).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Pruebe el programa.

Resultado:

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave