If you modify an Excel workbook, and then close the file, you are asked if you want to save your changes. This is a good feature that helps ensure you don't mistakenly throw away some of your work.
When running a macro, however, you may not want to be bothered with a dialog box asking if you want to save your changes. If the macro modifies a workbook in some way, and you use the Close method, you are asked if you want to save your changes, just as you are if you manually close a workbook without first saving.
The way to get around this is to use one of the parameters available with the Close method. Consider the following:
ActiveWorkbook.Close SaveChanges:=False ActiveWorkbook.Close SaveChanges:=True
Both lines of code close the active worbook. The difference between the lines is in the setting of the SaveChanges parameter. In the case of the first line, any changes will be discarded, while the second line results in the workbook being saved when it is closed.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (10674) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Office 365. You can find a version of this tip for the older menu interface of Excel here: Saving Changes when Closing.
Excel Smarts for Beginners! Featuring the friendly and trusted For Dummies style, this popular guide shows beginners how to get up and running with Excel while also helping more experienced users get comfortable with the newest features. Check out Excel 2013 For Dummies today!
Want to easily control which records get imported from a text file into Excel? It's easy to do when you write the macro ...
Discover MoreWhen creating macros, you'll often have a need to select different cells in the worksheet. Here's how to select the first ...
Discover MoreWant to run a macro when you first select a worksheet? You can do so by using one of the event handlers built into Excel, ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2019-07-16 13:42:40
Martin Shingler
I use some workbooks to collect, analyse and report on data regularly. Their macros collect data from specific folders and save reports to other locations. At the end, as the workbook is closed, I use
ThisWorkbook.Saved = True
in the Workbook_beforeClose macro for worksheets where I want to control the version and offer the next user a "clean sheet" for processing their data.
One to watch out for is during development, (or enhancement) you have to ensure that you comment this out, so that if you forget to save your changes, Excel will prompt you to save the modified file.
2019-07-16 13:36:51
Martin Shingler
I use some workbooks to collect, analyse and report on data regularly. Their macros collect data from specific folders and save reports to other locations. At the end, as the workbook is closed, I use
ThisWorkbook.Saved = True
in the Workbook_beforeClose macro for worksheets where I want to control the version and offer the next user a "clean sheet" for processing their data.
One to watch out for is during development, (or enhancement) you have to ensure that you comment this out, so that if you forget to save your changes, Excel will prompt you to save the modified file.
2019-07-15 05:54:49
Willy Vanhaelen
ActiveDocument.Close SaveChanges:=False
This is code for a Word document and won't work in Excel.
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2021 Sharon Parq Associates, Inc.
Comments