Este tutorial de VBA cubre cómo guardar un archivo usando los comandos Guardar y Guardar como en VBA.
Guardar libro de trabajo - VBA
El comando Guardar de VBA guarda un archivo de Excel de manera similar a hacer clic en el icono Guardar o usar el acceso directo Guardar (CTRL + S).
Guardar un libro de trabajo especificado
Para guardar un libro de trabajo, haga referencia al objeto del libro de trabajo y use el comando Guardar.
1 | Libros de trabajo ("savefile.xlsm"). Guardar |
Guardar el libro activo
Nota: Este es el libro de trabajo activo actual del código VBA, que es diferente de ThisWorkbook, que contiene el código en ejecución.
Guardar el libro de trabajo donde se almacena el código
Guardar todos los libros abiertos
Esto recorrerá todos los libros abiertos, guardando cada uno.
12345 | Dim wb como libro de trabajoPara cada wb en la aplicación.wb.GuardarSiguiente wb |
Guarde todos los libros abiertos que no se abrieron como de solo lectura
Nota: abrir un libro de trabajo en modo de solo lectura evita que el archivo se guarde.
Para guardar el archivo, deberá usar Guardar como y guardar el archivo con un nombre diferente.
1234567 | Dim wb como libro de trabajoPara cada wb en la aplicación.Si no es wb ReadOnly entonceswb.GuardarTerminara siSiguiente wb |
Guardar un libro de trabajo definido por una variable
Esto guardará un libro de trabajo que se asignó a una variable de objeto de libro de trabajo.
1234 | Dim wb como libro de trabajoestablecer wb = workbooks ("savefile.xlsm")wb.save |
Guardar un libro de trabajo definido por una variable de cadena
Esto guardará un libro de trabajo cuyo nombre se guardó en una variable de cadena.
1234 | Atenuar wbstring como cadenawbstring = "savefile.xlsm"libros de trabajo (wbstring) .save |
Guarde un libro de trabajo definido por el orden en que se abrió.
Nota: El primer libro de trabajo abierto tendría 1, el segundo 2, etc.
1 | libros de trabajo (1) .save |
Guardar un libro de trabajo basado en un valor de celda
Esto guardará un libro de trabajo cuyo nombre se encuentra en un valor de celda.
1234 | Atenuar wbstring como cadenawbstring = activeworkbook.sheets ("sheet1"). range ("wb_save"). valuelibros de trabajo (wbstring) .save |
Guardar como - VBA
El comando Guardar como de VBA guarda un archivo de Excel como un archivo nuevo, similar a hacer clic en el icono Guardar como o usar el acceso directo Guardar como (Alt> F> A).
Arriba, identificamos todas las formas de especificar qué libro de trabajo guardar. Puede usar exactamente esos mismos métodos para identificar libros de trabajo cuando use Guardar como.
Guardar como se comporta de manera similar a Guardar, excepto que también debe especificar el nombre del nuevo archivo.
De hecho, Guardar como tiene muchas variables potenciales para definir:
Sintaxis SaveAs:
123 | objeto de libro de trabajo .SaveAs (FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru, TextCodepage, TextVisualLayout, Local) |
A continuación se incluye una descripción completa de todos los argumentos SaveAs. Por ahora nos centraremos en los ejemplos más habituales.
Nota: Estos argumentos se pueden ingresar como una cadena entre paréntesis o como variables definidas.
Guardar como ejemplos de sintaxis:
Libro de trabajo Guardar como: mismo directorio
1 | ActiveWorkbook.SaveAs Filename: = "nuevo" |
o
1 | ActiveWorkbook.SaveAs "nuevo" |
o
1234 | Atenuar wbstring como cadenawbstring = "nuevo"Nombre de archivo ActiveWorkbook.SaveAs: = wbstring |
Libro de trabajo Guardar como - Nuevo directorio
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new" |
o
1234 | Atenuar wbstring como cadenawbstring = "C: \ new"Nombre de archivo ActiveWorkbook.SaveAs: = wbstring = |
Libro de trabajo Guardar como - Nuevo directorio, especificar extensión de archivo
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx" |
o
1234 | Atenuar wbstring como cadenawbstring = "C: \ new.xlsx"Nombre de archivo ActiveWorkbook.SaveAs: = wbstring |
Libro de trabajo Guardar como - Nuevo directorio, especificar extensión de archivo - Método alternativo
También puede especificar el formato de archivo en su propio argumento.
1234 | .xlsx = 51 '(52 para Mac).xlsm = 52 '(53 para Mac).xlsb = 50 '(51 para Mac).xls = 56 '(57 para Mac) |
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new", FileFormat: = 51 |
Libro de trabajo Guardar como: agregar contraseña para abrir archivo
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", Contraseña: = "contraseña" |
Guardar como libro de trabajo: agregar contraseña para privilegios de escritura
Si no se proporciona la contraseña correcta, el libro de trabajo se abre como de solo lectura
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", WriteRes: = "contraseña" |
Libro de trabajo Guardar como: solo lectura recomendado
TRUE para mostrar un cuadro de mensaje que recomienda que el archivo se abra como de solo lectura.
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", ReadOnlyRecommended: = TRUE |
Otros ejemplos de Guardar como
Crear cuadro de diálogo Guardar como
Esto genera el cuadro de diálogo Guardar como, que solicita al usuario que guarde el archivo.
Tenga en cuenta que este código simple puede no ser apropiado en todos los casos.
1 | Application.GetSaveAsFilename |
Crear cuadro de diálogo Guardar como con el nombre de archivo predeterminado proporcionado
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Crear cuadro de diálogo Guardar como con el nombre de archivo predeterminado proporcionado
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Crear y guardar un libro de trabajo nuevo
Esto creará un nuevo libro de trabajo y lo guardará inmediatamente.
123456 | Dim wb como libro de trabajoEstablecer wb = Workbooks.AddApplication.DisplayAlerts = Falsowb.SaveAs Filename: = ”c: \ Test1.xlsx”Application.DisplayAlerts = True |
Desactivar guardar alertas
Mientras trabaja para guardar en VBA, puede encontrar varias advertencias o avisos de guardado. Para deshabilitar las advertencias, agregue esta línea de código:
1 | Application.DisplayAlerts = Falso |
y para reactivar alertas:
1 | Application.DisplayAlerts = True |