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 determinada, 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 increíbles que puede hacer con él.
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 usar 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.
Abrir 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:\Users\sumit\OneDrive\Desktop\Project\Example.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, incluido el nombre del archivo y la extensión.
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.

Abrir varios archivos de Excel juntos
Si desea abrir varios archivos de Excel usando una sola subrutina, también puede hacerlo (usando varios métodos Workbooks.Open 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:\Users\sumit\OneDrive\Desktop\Project\Example1.xlsx")
Workbooks.Open ("C:\Users\sumit\OneDrive\Desktop\Project\Example2.xlsx")
Workbooks.Open ("C:\Users\sumit\OneDrive\Desktop\Project\Example3.xlsx")
End Sub
Abrir 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 de una sola vez, puede hacerlo fácilmente con el método Workbooks.Open junto con el simple bucle Do While.
A continuación, tengo un código donde especifiqué la ruta de la carpeta, y cuando se ejecuta este código, revisa cada archivo de Excel en la carpeta y lo abre.
Sub OpenFilesFromFolder()
Dim wb As Workbook
Dim FolderPath As String
Dim FilePath As String
FolderPath = "C:\Users\sumit\OneDrive\Desktop\Project\"
FilePath = Dir(FolderPath & "*.xls*")
Do While FilePath <> ""
Set wb = Workbooks.Open(FolderPath & FilePath)
FilePath = Dir
Loop
End Sub
Abrir archivos de Excel basados en el nombre
Si solo desea abrir archivos de Excel específicos en una carpeta según su nombre, puede modificar el código VBA anterior para hacerlo.
A continuación, tengo un código VBA donde abriría solo los archivos de Excel en las carpetas especificadas que tienen 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:\Users\sumit\OneDrive\Desktop\Project\"
FilePath = Dir(FolderPath & "*Sales*" & ".xls*")
Do While FilePath <> ""
Set wb = Workbooks.Open(FolderPath & FilePath)
FilePath = Dir
Loop
End Sub
En el código anterior, he usado Dir(FolderPath & “*Sales*” & “.xls*”) como FilePath, donde la palabra Sales está entre asteriscos
.
Esto garantiza que solo se abrirán los archivos con la palabra ‘Ventas’ en el nombre y el resto se ignorará.
Abrir 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:\Users\sumit\OneDrive\Desktop\Project\Example.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
Abrir archivo de Excel mostrando el cuadro de diálogo Abrir
En los ejemplos cubiertos hasta ahora, he especificado el nombre del archivo o la ruta de los archivos que deben abrirse 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

Abrir cuadro de diálogo de archivo usando VBA Excel
He usado On Error Resume Next en caso de que el usuario decida cerrar el cuadro de diálogo Abrir sin seleccionar ningún archivo. Si no se utiliza esta declaración, mostrará un error.
En este breve tutorial, le mostré un par de formas diferentes que puede usar para abrir libros de trabajo usando VBA en Excel.
Si bien es posible que no use estos códigos para simplemente abrir un archivo de Excel, el concepto podría ser muy útil cuando trabaje en proyectos de VBA más grandes en los que necesite abrir archivos de Excel como parte del código.
Otros tutoriales de Excel que también te pueden gustar: