Error When File is not found Abrir archivos de Excel con VBA (ejemplos)

Abrir archivos de Excel con VBA (ejemplos)

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.

Error cuando no se encuentra el archivo

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
A continuación se muestra el código VBA que mostraría el cuadro de diálogo Abrir donde el usuario puede seleccionar y abrir el archivo.

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:

Su Calificación Nos Ayuda a Mejorar