Con VBA en Excel, puede abrir fácilmente uno o más archivos de Excel especificando su ubicación.
Esto es posible gracias a la Workbooks.Open método, que toma la ubicación del archivo como argumento y abre ese archivo de Excel.
Puede hacer mucho más con el método Workbooks.Open, como abrir todos los archivos en una carpeta en particular, abrir archivos como de solo lectura, abrir archivos y luego guardarlos con un nombre diferente, etc.
En este tutorial, le mostraré cómo usar VBA para abrir archivos de Excel y todas las cosas geniales que puede hacer con ellos.
Libros de trabajo.Método abierto
En Excel VBA, puede usar el método Workbooks.Open para abrir un archivo de Excel, donde debe especificar la ruta del archivo del libro de Excel que desea abrir.
A continuación se muestra la sintaxis del método Workbooks.Open:
expression.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
Mientras que el método Workbooks.Open puede tomar 15 argumentos, en la mayoría de los casos solo necesitamos usar dos o tres de ellos.
Te mostraré ejemplos que harán más claro cómo usar estos argumentos.
Abra el libro de trabajo especificando la ruta del archivo
Primero, veamos cómo abrir un archivo de Excel donde conoce la ruta completa del archivo.
A continuación se muestra el código VBA que abriría un archivo de Excel llamado Ejemplo.xlsx en la carpeta llamada Proyecto en mi sistema:
Sub OpenWorkbook()
Workbooks.Open ("C:UserssumitOneDriveDesktopProjectExample.xlsx")
End Sub
Tenga en cuenta que la parte del archivo de Excel debe estar entre comillas dobles y debe especificar la ruta completa del archivo, incluidos el nombre y la extensión del archivo.
En caso de que Excel no pueda encontrar el archivo en la ubicación que especificó, le mostrará un error como se muestra a continuación.
Abra varios archivos de Excel a la vez
Si desea abrir varios archivos de Excel con una sola subrutina, también puede hacerlo (mediante el uso de varios libros de trabajo. Métodos abiertos con las rutas de archivo)
A continuación, tengo un código VBA que abriría tres archivos de Excel donde necesito especificar la ruta para cada archivo en el método Workbooks.Open separado.
Sub OpenMulitpleWorkbook()
Workbooks.Open ("C:UserssumitOneDriveDesktopProjectExample1.xlsx")
Workbooks.Open ("C:UserssumitOneDriveDesktopProjectExample2.xlsx")
Workbooks.Open ("C:UserssumitOneDriveDesktopProjectExample3.xlsx")
End Sub
Abra todos los libros de Excel en una carpeta
Si tiene varios archivos de Excel en una carpeta y desea abrir todos los archivos de esa carpeta a la vez, puede hacerlo fácilmente con el método Workbooks.Open junto con el ciclo simple Do While.
A continuación, tengo un código donde especifiqué la ruta de la carpeta, y cuando este código se ejecuta, revisa todos los archivos de Excel en la carpeta y los abre.
Sub OpenFilesFromFolder()
Dim wb As Workbook
Dim FolderPath As String
Dim FilePath As String
FolderPath = "C:UserssumitOneDriveDesktopProject"
FilePath = Dir(FolderPath & "*.xls*")
Do While FilePath ""
Set wb = Workbooks.Open(FolderPath & FilePath)
FilePath = Dir
Loop
End Sub
Abrir archivos de Excel por nombre
Si solo desea abrir archivos de Excel específicos en una carpeta según el nombre, puede cambiar el código VBA anterior para hacerlo.
A continuación, tengo un código VBA que abre solo los archivos de Excel en las carpetas especificadas con la palabra «Ventas» en el nombre del archivo de Excel.
Sub OpenFilesFromFolder()
Dim wb As Workbook
Dim FolderPath As String
Dim FilePath As String
FolderPath = "C:UserssumitOneDriveDesktopProject"
FilePath = Dir(FolderPath & "*Sales*" & ".xls*")
Do While FilePath ""
Set wb = Workbooks.Open(FolderPath & FilePath)
FilePath = Dir
Loop
End Sub
En el código anterior, utilicé Dir(FolderPath & «*Sales*» & «.xls*») como FilePath, con la palabra Sales entre asteriscos
.
Esto garantiza que solo se abran los archivos con la palabra «Ventas» en el nombre y todo lo demás se ignore.
Abra un libro de Excel protegido con contraseña
También puede abrir libros de trabajo protegidos con contraseña especificando la contraseña en el código VBA.
Sub OpenExcelFile()
Workbooks.Open "C:UserssumitOneDriveDesktopProjectExample.xlsx", , , Password:="Excel123"
End Sub
A continuación, tengo un código VBA que abriría un archivo de Excel protegido con contraseña, donde la contraseña es Excel123
Abra el archivo de Excel mostrando el cuadro de diálogo Abrir
En los ejemplos cubiertos hasta ahora, especifiqué el nombre del archivo o la ruta de los archivos para abrir en el propio código VBA.
Sin embargo, puede usar VBA para abrir el cuadro de diálogo Abrir archivo, donde el usuario puede navegar hasta el archivo y seleccionarlo para abrirlo.
Sub OpenFileDialogBox()
On Error Resume Next
Dim FilePath As String
FilePath = Application.GetOpenFilename()
Workbooks.Open (FilePath)
End Sub
Cuadro de diálogo Abrir archivo con VBA Excel
He usado On Error Resume Next en caso de que el usuario decida cerrar el cuadro de diálogo Abrir sin seleccionar un archivo. Si no se utiliza esta declaración, se mostrará un error.
En este breve tutorial, le mostré algunas formas diferentes que puede usar para abrir libros de trabajo con VBA en Excel.
Si bien es posible que no use estos códigos para simplemente abrir un archivo de Excel, el concepto puede ser bastante útil cuando trabaja en proyectos de VBA más grandes en los que necesita abrir archivos de Excel como parte del código.
Otros tutoriales de Excel que también te pueden gustar: