/ / Importar hojas utilizando Excel VBA

Importar hojas utilizando Excel VBA

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

Descarga Book1.xls, Book2.xls y agrégalos a "C: test"

Situación:

Importar hojas utilizando Excel VBA

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

1. Primero, declaramos dos variables de tipo Cadena, un objeto de Hoja de trabajo y una variable de tipo Entero.

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2. Desactivar la actualización de pantalla y mostrar alertas.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

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

directory = "c:test"
fileName = Dir(directory & "*.xl??")

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

4. La variable fileName ahora contiene el nombre del primer archivo de Excel encontrado en el directorio. Añadir un Do While Loop.

Do While fileName <> ""

Loop

Agregue 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 desde archivos de Excel cerrados. Por eso abrimos el archivo de Excel.

Workbooks.Open (directory & fileName)

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

For Each sheet In Workbooks(fileName).Worksheets
    total = Workbooks("import-sheets.xls").Worksheets.count
    Workbooks(fileName).Worksheets(sheet.Name).Copy _
    after:=Workbooks("import-sheets.xls").Worksheets(total)
Next sheet

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

7. Cierre el archivo de Excel.

Workbooks(fileName).Close

8. La función Dir es una función especial. Para obtener los otros archivos de Excel, puede usar la función Dirigir 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 bucle 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. Probar el programa.

Resultado:

Resultado de las hojas de importación

Lea también: