Как закрыть открытую книгу в Excel VBA


Когда вы работаете с 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 становятся недействительными. Если необходимо повторно открыть закрытую книгу, необходимо будет снова получить ссылку на нее.

Добавить комментарий

Вам также может понравиться