¿cómo cerrar un libro de excel usando vba?
Para cerrar un archivo de Excel, debe utilizar el método «Cerrar». Con este método, puede especificar si desea guardar los cambios o no. Y, si desea guardar y cerrar un archivo que aún no está guardado, puede especificar la ruta donde desea guardarlo antes de cerrarlo.
Aquí está la sintaxis del método close.
Workbook.Close (SaveChanges, FileName, RouteWorkbook)
Pasos para cerrar un libro de trabajo
- Especifique el libro que desea cerrar.
- Utilice el método de cierre con este libro de trabajo.
- En el método del código, indique si desea guardar el archivo o no.
- Al final mencione la ruta donde desea guardar el archivo antes de cerrarlo.
En este tutorial, veremos diferentes formas de cerrar un libro en Excel usando VBA.
Enlaces útiles: Ejecutar una macro – Grabador de macros – Editor de Visual Basic – Manual de macros personales
Cerrar un libro sin guardar
Si desea guardar el libro activo sin guardarlo, debe usar un código como este.
ActiveWorkbook.Close SaveChanges:=False
En este código, especifiqué «Falso» para el argumento «Guardar cambios». Por lo tanto, VBA ignorará si hay cambios en el libro que no se guardan. Y si desea cerrar un libro de trabajo específico, puede usar el nombre de ese libro de trabajo. Al igual que el siguiente código.
Workbooks("book1").Close SaveChanges:=False
Si tiene datos en el libro e ignora el argumento «Guardar cambios», Excel mostrará un cuadro de diálogo para confirmar si desea guardar el libro o no. El punto es este: es mejor especificar el argumento «SaveChanges» incluso si es opcional.
Cerrar un libro de trabajo después de guardarlo
Como vio, hay un argumento en el método CLOSE para especificar la ubicación de la ruta. Supongamos que desea guardar el «Libro6» en la carpeta del escritorio. Aquí está el código que necesitas usar.
Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"
Este código guardará el libro de trabajo «Libro6» en la carpeta guardada en mi escritorio con el nombre «myFILE.xlsx». Pero aquí hay una cosa de la que debes ocuparte: si ya tienes un libro con el mismo nombre, reemplazará ese archivo por el nuevo.
No te preocupes, hay una solución que puedes utilizar. El siguiente código verifica si hay un archivo con el nombre que desea usar
Sub vba_close_workbook() Dim wbCheck As String wbCheck = Dir("C:UsersDellDesktopmyFoldermyFile.xlsx") If wbCheck = "" Then Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx" Else MsgBox "Error! Name already used." End If End Sub