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
.
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.
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
.
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
.
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.
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.
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.
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.
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.