A continuación veremos un programa en Excel VBA que importa hojas de otros archivos de Excel en un archivo de Excel .
Descargue el Libro 4.xlsx, Libro 5.xlsx y añádalos a «C:testN»
Situación:
Añade las siguientes líneas de código al botón de comando:
1. Primero, declaramos dos variables de tipo String, un objeto de hoja de cálculo y una variable de tipo Integer.
Directorio Dim como cadena, archivoNombre como cadena, hoja como hoja de trabajo, total como entero
2. Apagar la actualización de la pantalla y la visualización de alertas.
Aplicación.Actualización de pantalla = Falso Aplicación.DisplayAlerts = Falso
3. Inicializar el directorio de variables. Usamos la función Dir para encontrar el primer archivo *.xl?? almacenado en este directorio.
directorio = «c:\N-testN» fileName = Dir(directorio & «*.xl??»)
Nota: La función Dir admite el uso de comodines de caracteres múltiples (*) 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 encontrado en el directorio. Añade un bucle Do While.
Do While fileName Bucle
Añade las siguientes líneas de código (en 5, 6, 7 y 8) al bucle.
5. No hay una forma sencilla de copiar hojas de trabajo de archivos cerrados de Excel. Por lo tanto, abrimos el archivo de Excel.
Libros de trabajo. Abrir (directorio & nombre de archivo)
6. Importa las hojas del archivo de Excel a import-sheet.xlsm.
Para cada hoja de los libros de trabajo (nombre del archivo). Hojas de trabajo total = Libros de trabajo(«import-sheets.xlsm»).Hojas de trabajo.recuento Libros de trabajo (nombre del archivo). Hojas de trabajo (nombre de la hoja). Copia… after:=Libros de trabajo(«import-sheets.xlsm»).Hojas de trabajo(total) Próxima hoja
Explicación: el total variable lleva la cuenta del número total de hojas de trabajo de import-sheet.xlsm. Utilizamos el método Copy del objeto Worksheet para copiar cada hoja de trabajo y pegarla después de la última hoja de trabajo de import-sheets.xlsm.
7. Cierra el archivo de Excel.
Cuadernos de trabajo(fileName).Close
8. La función Dir es una función especial. Para obtener los otros archivos de Excel, puedes usar la función Dir de nuevo sin argumentos.
fileName = Dir()
Nota: Cuando no coinciden más nombres de archivos, la función Dir devuelve una cadena de longitud cero («»). Como resultado, Excel VBA dejará el bucle Do While.
9. Activar la actualización de la pantalla y volver a mostrar las alertas (fuera del bucle).
Aplicación. Actualización de la pantalla = Verdadero Application.DisplayAlerts = True
10. Pruebe el programa.
Resultado: