Excel VBA Tutorial – Save and Close Excel workbook

.

Step by Step Guide to Save and Close Workbooks

Index:


  1. Save and close all open workbooks including current one
  2. Save and close all open workbooks without closing the current one
  3. Save and close a specific workbook
  4. Save and close a current workbook Only
  5. Close a workbook without saving it

While closing an Excel workbook manually, you would have noticed this confirmation popup before it closes.

Closing Excel Workbook - VBA

Closing Excel Workbook – VBA

The user is asked to save the changes before closing it. When you try to close an excel workbook programmatically, then you need to provide this choice before closing it – Whether you want to save it before closing or discard the changes.

This is the statement that is used to close a Workbook. ThisWorkbook.Close savechanges:=True The parameter savechanges:=True or savechanges:=False is set according to your preference.
Note: That ThisWorkbook is current workbook object. That means after executing the above statement, the same workbook will be closed where the statement is executed.
Let’s take a look at a few examples.

How to save and close all open workbooks including current one

In this example, we are going to save and close all open workbooks including the current one, where this VBA code is running. Since you need to close the current workbook too, you need to make sure that the Save and Close command is executed for the current workbook at last. You can see in the below code, that before closing any workbook from Workbooks Object which is basically a collection of all Open Workbooks, I am checking the name of the workbook and if it is matching with the current workbook name, which is ThisWorkbook Object. If it is not the same, then close it else move to the next Workbook. Once all the workbooks are closed except current one, you can close the current workbook.

Sub SaveClose()
Dim Wb As Workbook
For Each Wb In Workbooks
If Wb.Name <> ThisWorkbook.Name Then
Wb.Close savechanges:=True
End If
Next Wb
ThisWorkbook.Close savechanges:=True
End Sub

How to save and close all open workbooks without closing the current one

Sometimes you need to close all the workbook before you run your macro in an excel workbook. In such case, you can use following code to close all open workbooks except the current one where the code is running.

Sub SaveClose()
Dim Wb As Workbook
For Each Wb In Workbooks
If Wb.Name <> ThisWorkbook.Name Then
Wb.Close savechanges:=True
End If
Next Wb
End Sub

How to save and close a specific workbook

.close method can be executed on any Worbook object which can close the workbook.

Sub SaveClose()
Workbooks("YourExcelWorkbook.xls").Close savechanges:=True
End Sub

How to save and close a current workbook Only

As mentioned before, we can execute .close method on Current Workbook, which is ThisWorkbook

Sub SaveClose()
ThisWorkbook.Close savechanges:=True
End Sub

How to close a workbook without saving it

It is simple, all you need to do is pass the savechanges:=True parameter to False.

Sub SaveClose()
ThisWorkbook.Close savechanges:=False
End Sub

Buy a coffee for the author

Adsense

Download FREE Tools and Templates

There are many cool and useful excel tools and templates available to download for free. For most of the tools, you get the entire VBA code base too which you can look into it, play around it, and customize according to your need.

Dynamic Arrays and Spill Functions in Excel: A Beginner’s Guide
Dynamic Arrays and Spill Functions in Excel: A Beginner’s Guide

In today's tutorial, we'll be diving into the exciting world of dynamic arrays and spill functions in Office 365 Excel. These features have revolutionized the way we work with data, providing a more flexible and efficient way to handle arrays. I am going to explain...

How to Declare a Public Variable in VBA
How to Declare a Public Variable in VBA

While programming in VBA sometimes you need to declare a Public Variable that can store the value throughout the program. Use of Public Variable: Let's say you have 4 different Functions in your VBA Code or Module and you have a variable that may or may not be...

How to Copy content from Word using VBA

As many of us want to deal with Microsoft Word Document from Excel Macro/VBA. I am going to write few articles about Word from Excel Macro. This is the first article which opens a Word Document and read the whole content of that Word Document and put it in the Active...

What is Excel Formula?

Excel Formula is one of the best feature in Microsoft Excel, which makes Excel a very very rich application. There are so many useful built-in formulas available in Excel, which makes our work easier in Excel. For all the automated work, Excel Macro is not required. There are so many automated things can be done by using simple formulas in Excel. Formulas are simple text (With a Syntax) which is entered in to the Excel Worksheet Cells. So how computer will recognize whether it is a formula or simple text? Answer is simple.. every formula in Excel starts with Equal Sign (=).

You May Also Like…

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Join and get a FREE! e-Book

Don't miss any articles, tools, tips and tricks, I publish here

You have Successfully Subscribed!

Pin It on Pinterest