Сохранение файла рабочей книги Excel, существующего или нового, с помощью кода VBA. Методы Save и SaveAs объекта Workbook, параметр SaveChanges метода Close.
Сохранение существующего файла
Сохранить существующий открытый файл рабочей книги Excel из кода VBA можно несколькими способами. В примерах используется выражение ActiveWorkbook, которое может быть заменено на ThisWorkbook, Workbooks(«ИмяКниги.xlsx»), Workbooks(myFile.Name), где myFile — объектная переменная с присвоенной ссылкой на рабочую книгу Excel.
Простое сохранение файла после внесенных кодом VBA Excel изменений:
1 |
ActiveWorkbook.Save |
Сохранение файла под другим именем (исходная рабочая книга будет автоматически закрыта без сохранения внесенных изменений):
1 |
ActiveWorkbook.SaveAs Filename:="C:\Тестовая\НоваяКнига.xlsx" |
Сохранить файл рабочей книги можно перед закрытием, используя параметр SaveChanges метода Close со значением True:
1 |
ActiveWorkbook.Close SaveChanges:=True |
Чтобы закрыть файл без сохранения, используйте параметр SaveChanges метода Close со значением False:
1 |
ActiveWorkbook.Close SaveChanges:=False |
Сохранение файла под другим именем при закрытии рабочей книги:
1 |
ActiveWorkbook.Close SaveChanges:=True, Filename:="C:\Тестовая\НоваяКнига.xlsx" |
Если в примерах с методом Close параметр SaveChanges пропустить, будет открыто диалоговое окно с запросом о сохранении файла.
Сохранение новой книги Excel
Новая книга сохраняется с указанием полного имени:
1 2 |
Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\Тестовая\НоваяКнига.xlsx" |
После этого к новой книге можно обращаться по имени: Workbooks ("НоваяКнига.xlsx")
.
Если не указать полное имя для сохраняемого файла:
1 2 |
Workbooks.Add ActiveWorkbook.Save |
тогда новая книга будет сохранена с именем и в папке по умолчанию, например: Книга1.xlsx, Книга2.xlsx, Книга3.xlsx и т.д. в папке «Документы».