Как закрыть книгу excel с помощью vba?
Чтобы закрыть файл Excel, необходимо использовать метод «Закрыть». С помощью этого метода вы можете указать, хотите ли вы сохранить изменения или нет. А если вы хотите сохранить и закрыть файл, который еще не сохранен, вы можете указать путь, по которому вы хотите его сохранить, прежде чем закрывать его.
Вот синтаксис метода close.
Workbook.Close (SaveChanges, FileName, RouteWorkbook)

Действия по закрытию книги
- Укажите книгу, которую хотите закрыть.
- Используйте метод close с этой книгой.
- В методе кода укажите, хотите ли вы сохранить файл или нет.
- В конце укажите путь, по которому вы хотите сохранить файл перед закрытием.
В этом уроке мы рассмотрим различные способы закрытия книги в Excel с помощью VBA.
Полезные ссылки: Запуск макроса – Средство записи макросов – Редактор Visual Basic – Персональный справочник по макросам
Закрыть книгу без сохранения
Если вы хотите сохранить активную книгу без сохранения, вам нужно использовать такой код.
ActiveWorkbook.Close SaveChanges:=False
В этом коде я указал «False» для аргумента «SaveChanges». Таким образом, VBA будет игнорировать любые изменения в книге, которые не сохранены. Если вы хотите закрыть определенную книгу, вы можете использовать имя этой книги. Точно так же, как следующий код.
Workbooks("book1").Close SaveChanges:=False
Если у вас есть данные в книге и вы игнорируете аргумент «Сохранить изменения», Excel отобразит диалоговое окно, чтобы подтвердить, хотите ли вы сохранить книгу или нет. Дело вот в чем: аргумент «SaveChanges» лучше указывать, даже если он необязателен.
Закройте книгу после ее сохранения
Как вы видели, в методе CLOSE есть аргумент, указывающий путь. Допустим, вы хотите сохранить «Book6» в папку на рабочем столе. Вот код, который вам нужно использовать.
Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"
Этот код сохранит книгу «Book6» в папке, сохраненной на моем рабочем столе, под именем «myFILE.xlsx». Но вот одна вещь, о которой вам нужно позаботиться: если у вас уже есть книга с таким же именем, она заменит этот файл новым.
Не волнуйтесь, есть решение, которое вы можете использовать. Следующий код проверяет, существует ли файл с именем, которое вы хотите использовать.
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