Ya sabemos cómo abrir o guardar un archivo de Excel en VBA. Simplemente usamos el método Open y SaveAs del objeto Workbook. Pero eso requiere una codificación rígida de la ruta del archivo. Pero la mayoría de las veces querrá que el usuario final seleccione un archivo usando GUI o diga Archivo Abrir o Guardar como cuadro de diálogo que le permite al usuario elegir la ubicación del archivo visual y fácilmente.
En este artículo, cubrimos el código utilizado para mostrar el cuadro de diálogo abierto del libro de trabajo y guardarlo como cuadro de diálogo.
Adjunto un libro de trabajo que puede descargar. El libro de trabajo adjunto a este artículo contiene tres macros
Código VBA para abrir un archivo usando el cuadro de diálogo Abrir archivo
En este código, usaremos el método de aplicación GetOpenFilename. La sintaxis del método GetOpenFilename es:
Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])
[FileFilter]: Puede definir mostrar solo un tipo de archivo en la carpeta seleccionada. Si escribe "Archivos de Excel, * .xlsx, * .xls, * .xlsm", etc., solo se mostrarán los archivos de Excel de la carpeta en el cuadro de diálogo de apertura de archivos.
[FilterIndex]:Es la cantidad de filtros de archivos que desea utilizar.
[Título]: El título del cuadro de diálogo.
[Botón de texto]:Para especificar el texto del botón. No importante.
[Selección múltiple]: Es una variable booleana. Si lo configura como Verdadero o 1, podrá seleccionar más de un archivo. Si lo establece como falso, solo puede seleccionar un archivo.
Basta de teoría. Hagamos algunos hechizos.
Código VBA para abrir un archivo a la vez
Opción Explícita Sub OpenOneFile () Dim FileName As Variant 'Visualización del cuadro de diálogo de archivo abierto FileName = Application.GetOpenFilename ("Excel-files, *. Xls", _ 1, "Seleccionar un archivo para abrir",, False)' El usuario no 't seleccione un archivo If TypeName (FileName) = "Boolean" Then Exit Sub' Abra el libro de trabajo Workbooks.Open FileName End Sub
¿Como funciona?
Cuando ejecuta este segmento de código, el método GetOpenFilename para el objeto Aplicación abrirá un cuadro de diálogo Abrir archivo. El título del cuadro de diálogo será "Seleccionar un archivo para abrir" como definimos en el código. Si selecciona un archivo, se ejecutará el código Worbook.Open y se abrirá el archivo. Si no selecciona un archivo, el sub se cerrará sin ejecutar el código Workbook.Open.
Código VBA para abrir uno o más archivos a la vez
Este segmento de código abrirá el cuadro de diálogo de apertura de archivo, pero podrá seleccionar más de un archivo a la vez.
Sub OpenMultipleFiles () Dim FileName As Variant, f As Integer 'Visualización del cuadro de diálogo de archivo abierto FileName = Application.GetOpenFilename ("Excel-files, *. Xlsx", _ 1, "Seleccione uno o más archivos para abrir",, True ) 'El usuario no seleccionó un archivo If TypeName (FileName) = "Boolean" Then Exit Sub' Abra todos los libros de trabajo seleccionados por el usuario Para f = 1 To UBound (FileName) Workbooks.Open FileName (f) Siguiente f End Sub
Tenga en cuenta que aquí hemos establecido la variable de selección múltiple en Verdadero. Esto permitirá la selección múltiple del archivo.
Código de VBA para abrir el cuadro de diálogo Guardar como
Para abrir un cuadro de diálogo Guardar como usaremos el método GetSaveAsFilename del objeto Aplicación. La sintaxis del método es:
Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText])
[InitialFileName]:El nombre del archivo inicial. Si no cambia el nombre del archivo mientras lo guarda, su archivo se guardará con este nombre.
[FileFilter]: Puede definir mostrar solo un tipo de archivo en la carpeta seleccionada. Si escribe "Archivos de Excel, * .xlsx, * .xls, * .xlsm", etc., solo se mostrarán los archivos de Excel de la carpeta en el cuadro de diálogo de apertura de archivos.
[FilterIndex]: El índice de filtro del archivo.
[Título]:El título del cuadro de diálogo.
[Botón de texto]:Esto se usa en el sistema Mac para cambiar el nombre del botón.
Siga a continuación para obtener el código
Sub SaveFile () Dim FileName As Variant 'Visualización del cuadro de diálogo saveas FileName = Application.GetSaveAsFilename ("MyFileName.xls", _ "Archivos de Excel, *. Xls", 1, "Seleccione su carpeta y nombre de archivo")' El usuario no ' t guardar un archivo If TypeName (FileName) = "Boolean" Then Exit Sub 'Guardar el libro de trabajo ActiveWorkbook.SaveAs FileName End Sub
SaveFile Macro utiliza el método GetSaveAsFilename del objeto Aplicación para abrir el cuadro de diálogo Guardar como, asignando el nombre del archivo y seleccionando la ubicación para guardar el libro.
Así que sí, chicos, así es como pueden usar el cuadro de diálogo para abrir y guardar archivos usando VBA. Espero que haya sido de ayuda. Si tiene alguna duda con respecto a este artículo o cualquier otro tema de VBA, pregunte en la sección de comentarios a continuación.
Use un libro de trabajo cerrado como base de datos (DAO) usando VBA en Microsoft Excel | Para usar un libro cerrado como base de datos con conexión DAO, use este fragmento de VBA en Excel.
Use un libro cerrado como base de datos (ADO) usando VBA en Microsoft Excel | Para usar un libro cerrado como base de datos con conexión ADO, use este fragmento de VBA en Excel.
Introducción a Excel VBA UserForms | Para insertar datos en la base de datos, utilizamos formularios. Los UserForms de Excel son útiles para obtener información del usuario. Así es como debe comenzar con los formularios de usuario de VBA.
Cambie el valor / contenido de varios controles de UserForm usando VBA en Excel | Para cambiar el contenido de los controles del formulario de usuario, utilice este sencillo fragmento de VBA.
Evite que un formulario de usuario se cierre cuando el usuario hace clic en el botón x utilizando VBA en Excel | Para evitar que el formulario de usuario se cierre cuando el usuario hace clic en el botón x del formulario, usamos el evento UserForm_QueryClose.
Articulos populares:
50 accesos directos de Excel para aumentar su productividad | Acelera tu tarea. Estos 50 accesos directos le permitirán trabajar aún más rápido en Excel.
La función BUSCARV en Excel | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas.
CONTAR.SI en Excel 2016 | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar un valor específico. La función Countif es esencial para preparar su tablero.
Cómo usar la función SUMIF en Excel | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.