Abrir un libro de trabajo

Al usar VBA para procesar datos automáticamente, puede haber ocasiones en las que desee leer datos de un libro de trabajo existente.

VBA proporciona un método para abrir otros libros de trabajo, lo que le permite abrir un libro de trabajo desde VBA y obtener y manipular datos.

Esto permite intercambiar datos automáticamente entre varios libros de trabajo. También es posible procesar varios libros de trabajo que contienen números secuenciales en un solo lote.

En esta página, se presenta cómo abrir un libro de trabajo usando VBA con ejemplos de código específicos.

Cómo abrir un libro de trabajo usando VBA

Para abrir un nuevo libro de trabajo, use el método Open proporcionado por la clase Workbooks.

Abrir_un_libro_de_trabajo
Workbooks.Open "Ruta del archivo de destino"

Este método abre el libro de trabajo en la ruta de archivo especificada como argumento.

Para la ruta de archivo, especifique una ruta absoluta como C:\Users\user\Documents\sample.xlsx.

Abrir un libro de trabajo con una ruta relativa

Si desea especificar una ruta relativa, use la propiedad ThisWorkbook.Path para obtener la ruta del libro de trabajo actual y luego especifique la ruta relativa.

Abrir_un_libro_de_trabajo_con_una_ruta_relativa
Workbooks.Open ThisWorkbook.Path & "\sample.xlsx"

Al ejecutar el código anterior, puede abrir sample.xlsx que se encuentra en el mismo directorio que el archivo de Excel que está ejecutando.

Abrir un libro de trabajo con contraseña

Para abrir un libro de trabajo con contraseña, especifique la contraseña en el argumento Password.

Abrir_un_libro_de_trabajo_con_contraseña
Workbooks.Open("ruta del archivo de destino", Password:="contraseña")

Al ejecutar el código anterior, puede abrir el libro de trabajo protegido con la contraseña especificada.

Si la contraseña es incorrecta, se generará un error.

Abrir un libro de trabajo en modo de solo lectura

Si no necesita modificar un archivo de Excel externo y solo desea consultarlo, puede abrir el libro de trabajo en modo de solo lectura.

Para abrir un libro de trabajo en modo de solo lectura, especifique True para el argumento ReadOnly.

Abrir_un_libro_de_trabajo_en_modo_de_solo_lectura
Workbooks.Open("ruta del archivo", ReadOnly:=True)

Al ejecutar el código anterior, podrá abrir el libro de trabajo en modo de solo lectura.

Para evitar modificaciones accidentales, se recomienda abrir el libro de trabajo en modo de solo lectura si solo necesita consultarlo.

Para obtener más información sobre cómo abrir un libro de trabajo en modo de solo lectura, consulte la siguiente página.

Abrir libro de trabajo como solo lectura
Presentamos cómo abrir un libro de trabajo como solo lectura utilizando VBA.

Puntos a tener en cuenta al abrir un libro de trabajo

Cuando abres un libro de trabajo utilizando el código mencionado anteriormente, Excel se abrirá en una nueva ventana.

Por lo tanto, si ocurre un error en el código VBA y el proceso se interrumpe, es posible que Excel permanezca abierto.

Para evitar esta situación, se recomienda agregar un proceso para cerrar el libro de trabajo incluso si ocurre un error.

Para obtener más información sobre cómo manejar errores, consulte la siguiente página.

Implementación de Try-Catch-Finally en VBA
Generalmente, el manejo de errores se realiza mínimamente en cada función y luego se lanza al llamador. Sin embargo, en

Ejemplo específico de cerrar un libro de trabajo

Uso básico

El siguiente código abre sample.xlsx, realiza algún procesamiento y luego lo cierra.

Abrir_y_cerrar_un_libro_de_trabajo
Private Sub OpenWorkbook()
    Dim wb As Workbook
    Dim path As String

    ' Especificar la ruta del libro de trabajo que se desea abrir
    path = "C:\Documents\Report.xlsx"

    ' Abrir el libro de trabajo
    Set wb = Workbooks.Open(path)

    ' Realizar algún procesamiento
    ' ...

    ' Después del procesamiento, cerrar el libro de trabajo (sin guardar cambios)
    wb.Close SaveChanges:=False
End Sub

Procesar varios libros de trabajo a la vez

El siguiente código muestra un ejemplo de cómo procesar varios libros de trabajo especificados en una matriz, uno por uno, y cerrarlos después de que se haya completado el procesamiento.

Procesar
Sub OpenMultipleWorkbooks()
    Dim wb As Workbook
    Dim files As Variant
    Dim i As Integer

    ' Lista de libros de trabajo que se desean abrir
    files = Array("C:\Reports\Report1.xlsx", "C:\Reports\Report2.xlsx", "C:\Reports\Report3.xlsx")

    ' Abrir cada archivo en la matriz
    For i = LBound(files) To UBound(files)
        Set wb = Workbooks.Open(files(i))
        ' Realizar el procesamiento necesario
        ' ...
        ' Después del procesamiento, cerrar el libro de trabajo (sin guardar cambios)
        wb.Close SaveChanges:=False
    Next i
End Sub

Resumen

El uso de VBA para abrir libros de trabajo amplía el alcance del uso de VBA y es muy útil para automatizar tareas. Personaliza el código y úsalo según tus necesidades.

#Excel #VBA