How to: Programmatically Save Workbooks
There are several ways to save a workbook. You can save a workbook without changing the path. If the workbook has not been saved before, you should save the workbook by specifying a path. Without an explicit path, Microsoft Office Excel saves the file in the current folder with the name it was given when it was created. You can also save a copy of the workbook without modifying the open workbook in memory.
Applies to: The information in this topic applies to document-level projects and application-level projects for Excel 2013 and Excel 2010. For more information, see Features Available by Office Application and Project Type.
Saving a Workbook Without Changing the Path
To save a workbook associated with a document-level customization
Call the Save method of the ThisWorkbook class.
Me.Save()
this.Save();
To save the active workbook in an application-level add-in
Call the Save method to save the active workbook. To use the following code example, run it in the ThisAddIn class in an application-level project for Excel.
Me.Application.ActiveWorkbook.Save()
this.Application.ActiveWorkbook.Save();
Saving a Workbook with a New Path
You can save the specified workbook to a new location or with a new name, optionally specifying a file format, a password, an access mode, and more.
Note
You might want to set the DisplayAlerts property to False before saving the workbook with a new path because saving in some formats requires interaction. Setting this property to False causes Excel to use all defaults.
To save a workbook associated with a document-level customization
Call the SaveAs method of the ThisWorkbook class. To use the following code example, run it in the ThisWorkbook class.
Me.SaveAs("C:\Book1.xml")
this.SaveAs(@"C:\Book1.xml", missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
To save the active workbook in an application-level add-in
Call the SaveAs method to save the active workbook to a new path. To use the following code example, run it in the ThisAddIn class in an application-level project for Excel.
Me.Application.ActiveWorkbook.SaveAs("C:\Test\Book1.xml")
this.Application.ActiveWorkbook.SaveAs(@"C:\Test\Book1.xml", Excel.XlSaveAsAccessMode.xlNoChange);
Saving a Copy of the Workbook
You can save a copy of the workbook to a file without modifying the open workbook in memory. This is useful when you want to create a backup copy without modifying the location of the workbook.
To save a workbook associated with a document-level customization
Call the SaveCopyAs method of the ThisWorkbook class. To use the following code example, run it in the ThisWorkbook class.
Me.SaveCopyAs("C:\Book1.xlsx")
this.SaveCopyAs(@"C:\Book1.xlsx");
To save the active workbook in an application-level add-in
Call the SaveCopyAs method to save a copy of the active workbook. To use the following code example, run it in the ThisAddIn class in an application-level project for Excel.
Me.Application.ActiveWorkbook.SaveCopyAs("C\Book1.xlsx")
this.Application.ActiveWorkbook.SaveCopyAs(@"C\Book1.xlsx");
Robust Programming
Interactively canceling any of the methods that save or copy the workbook raises a run-time error in your code. For example, if your procedure calls the SaveAs method but does not disable prompts from Excel, and your user clicks Cancel when prompted, Excel raises a run-time error.
See Also
Tasks
How to: Programmatically Close Workbooks
Concepts
Programmatic Limitations of Host Items and Host Controls