Когда вы работаете с VBA в Excel, часто возникает необходимость закрыть открытую книгу. В некоторых случаях это может быть необходимо для автоматической обработки данных или для сохранения изменений в файле. В этой статье мы рассмотрим несколько способов, как закрыть открытую книгу в Excel VBA.
1. Способ 1: Используя команду Close
ActiveWorkbook.Close
Этот способ закрывает активную книгу без сохранения изменений. Если вы вносили изменения, перед закрытием книги появится диалоговое окно, предлагающее сохранить изменения.
2. Способ 2: Используя команду Close с параметром SaveChanges
ActiveWorkbook.Close SaveChanges:=True
Этот способ закрывает активную книгу и автоматически сохраняет все изменения. При использовании этого способа диалоговое окно, запрашивающее сохранение изменений, не появляется.
3. Способ 3: Используя команду Close с параметрами SaveChanges и Filename
ActiveWorkbook.Close SaveChanges:=True, Filename:="Путь_к_файлу"
Этот способ закрывает активную книгу, сохраняет все изменения и перезаписывает файл с указанным путем и именем. Если указанный файл не существует, он будет создан.
Как закрыть открытую книгу в Excel VBA?
В Excel VBA можно закрыть открытую книгу при помощи специального метода, который называется Close
. Этот метод применяется к объекту Workbook
, который представляет собой открытую книгу в Excel.
Прежде чем закрыть книгу, необходимо получить доступ к ней. Это можно сделать, указав имя книги или индекс в коллекции открытых книг. Например, чтобы закрыть книгу по имени:
Workbooks("Название книги.xlsx").Close
Если необходимо закрыть активную книгу, можно использовать объект ThisWorkbook
. Например:
ThisWorkbook.Close
После вызова метода Close
, Excel закроет указанную книгу. Если в книге были внесены изменения, Excel может вывести диалоговое окно со списком выбора (сохранить, не сохранять, отменить). Для обхода этого окна и автоматического сохранения изменений, можно перед вызовом метода Close
использовать свойство DisplayAlerts
:
Application.DisplayAlerts = FalseWorkbooks("Название книги.xlsx").CloseApplication.DisplayAlerts = True
Этот код отключает отображение диалогового окна, закрывает книгу без запроса на сохранение изменений и после этого верно включает отображение диалоговых окон обратно.
Важно учитывать, что закрывая книгу с помощью метода Close
, все ссылки на нее в коде Excel VBA становятся недействительными. Если необходимо повторно открыть закрытую книгу, необходимо будет снова получить ссылку на нее.