Vba excel сохранение при закрытии

закрытие екселя с сохранением и без предупреждения

85Muslim85

Дата: Суббота, 21.03.2015, 14:08 |
Сообщение № 1

Группа: Заблокированные

Ранг: Участник

Сообщений: 60


Репутация:

-23

±

Замечаний:
80% ±


Excel 2007

добрый день, скажите как закрыть ексель (полностью выйти) с сохранением под таким же названием и без предупреждения
скажите что в этом коде не так((((

[vba]

Код

Sub вава()
Range(«A1») = 1
Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.SaveAs («rl.xlsm»)
Workbooks.Close
End Sub

[/vba]

Сообщение отредактировал 85Muslim85Суббота, 21.03.2015, 16:26

 

Ответить

KSV

Дата: Суббота, 21.03.2015, 14:29 |
Сообщение № 2

Группа: Друзья

Ранг: Ветеран

Сообщений: 770


Репутация:

255

±

Замечаний:
0% ±


Excel 2013

все правильно

[vba]

Код

‘ подавляет предупреждения Excel
Workbooks.Application.DisplayAlerts = False

‘ сохраняет книгу в файл С ДРУГИМ именем
Excel.ActiveWorkbook.SaveAs («rl.xlsm»)

‘ сохраняет книгу в файл С ТЕМ ЖЕ именем
Excel.ActiveWorkbook.Save

‘ закрывает книгу
Workbooks.Close

‘ закрыть с сохранением (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close True

‘ закрыть без сохранения (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close False

‘ закрыть Excel (закроется только если в этом же Application больше нет открытых и не сохраненных книг,
‘ иначе будет запрашивать подтверждения сохранения, при .DisplayAlerts = True)
Application.Quit

[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333

Сообщение отредактировал KSVСуббота, 21.03.2015, 14:34

 

Ответить

85Muslim85

Дата: Суббота, 21.03.2015, 14:35 |
Сообщение № 3

Группа: Заблокированные

Ранг: Участник

Сообщений: 60


Репутация:

-23

±

Замечаний:
80% ±


Excel 2007

все отлично)) спасибки… вот чего я хотел)

Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.Save
Application.Quit

 

Ответить

Сохранение файла рабочей книги Excel, существующего или нового, с помощью кода VBA. Методы Save и SaveAs объекта Workbook, параметр SaveChanges метода Close.

Сохранение существующего файла

Сохранить существующий открытый файл рабочей книги Excel из кода VBA можно несколькими способами. В примерах используется выражение ActiveWorkbook, которое может быть заменено на ThisWorkbook, Workbooks(«ИмяКниги.xlsx»), Workbooks(myFile.Name), где myFile — объектная переменная с присвоенной ссылкой на рабочую книгу Excel.

Простое сохранение файла после внесенных кодом VBA Excel изменений:

Сохранение файла под другим именем (исходная рабочая книга будет автоматически закрыта без сохранения внесенных изменений):

ActiveWorkbook.SaveAs Filename:=«C:ТестоваяНоваяКнига.xlsx»

Сохранить файл рабочей книги можно перед закрытием, используя параметр SaveChanges метода Close со значением True:

ActiveWorkbook.Close SaveChanges:=True

Чтобы закрыть файл без сохранения, используйте параметр SaveChanges метода Close со значением False:

ActiveWorkbook.Close SaveChanges:=False

Сохранение файла под другим именем при закрытии рабочей книги:

ActiveWorkbook.Close SaveChanges:=True, Filename:=«C:ТестоваяНоваяКнига.xlsx»

Если в примерах с методом Close параметр SaveChanges пропустить, будет открыто диалоговое окно с запросом о сохранении файла.

Новая книга сохраняется с указанием полного имени:

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=«C:ТестоваяНоваяКнига.xlsx»

После этого к новой книге можно обращаться по имени: Workbooks ("НоваяКнига.xlsx").

Если не указать полное имя для сохраняемого файла:

Workbooks.Add

ActiveWorkbook.Save

тогда новая книга будет сохранена с именем и в папке по умолчанию, например: Книга1.xlsx, Книга2.xlsx, Книга3.xlsx и т.д. в папке «Документы».


powerking11

1 / 1 / 0

Регистрация: 28.04.2016

Сообщений: 103

1

Автосохранение книги при закрытии

18.12.2020, 15:49. Показов 3090. Ответов 4

Метки vba access, vba excel (Все метки)


Студворк — интернет-сервис помощи студентам

Нужен макрос что бы при закрытии книги, не выдавало окно с вопросом сохранения, а сохраняло сразу.

Visual Basic
1
2
3
Sub AutoClose()
  If ActiveDocument.Saved = False Then ActiveDocument.Save
End Sub

В книгу и модуль, сначала работает..
Открываешь снова изменяешь документ, нажимаешь закрыть — справшивает.
То есть макрос не работает



0



Vlad999

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

18.12.2020, 16:20

2

WORD или Excel или еще где? Чтобы макрос работал его нужно вешать на событие закрытия книги.
в эксель

Visual Basic
1
Private Sub Workbook_BeforeClose(Cancel As Boolean)

в ворд

Visual Basic
1
Private Sub Document_Close()



0



Kubuntovod

Эксперт NIX

2670 / 786 / 176

Регистрация: 14.01.2013

Сообщений: 3,674

18.12.2020, 17:29

3

Visual Basic
1
Documents.Save NoPrompt:=True, OriginalFormat:=wdOriginalDocumentFormat

Оно?



0



Igor_61

89 / 49 / 18

Регистрация: 03.06.2019

Сообщений: 187

19.12.2020, 18:10

4

Цитата
Сообщение от powerking11
Посмотреть сообщение

что бы при закрытии книги, не выдавало окно с вопросом сохранения, а сохраняло сразу

В Excel:

Visual Basic
1
2
3
Application.DisplayAlerts = False
        ThisWorkbook.Save
        Application.DisplayAlerts = True



1



powerking11

1 / 1 / 0

Регистрация: 28.04.2016

Сообщений: 103

21.12.2020, 14:32

 [ТС]

5

Igor_61, спасибо работает

Добавлено через 3 минуты
Igor_61,

PureBasic
1
2
3
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Save ' принудительное сохранение перед закрытием
End Sub

Но лучше так



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

21.12.2020, 14:32

Помогаю со студенческими работами здесь

При закрытии одной книги записать информацию во вторую
Всем привет) столкнулся с проблемой: есть две книги в одну заношу информацию, и во вторую заношу…

Excel При закрытии книги VB проект остается не выгруженным
В Excel на VBA написал проект, однако при закрытии книги этот проект почему-то остается не…

Как при закрытии книги эксель — убрать иконку
Добрый вечер.
Помогите решить вопрос.

При открытии файл эксель подгружает иконку (.ico) по…

Сделать так, чтобы при закрытии книги удалялась кнопка
Добрый день!

Вопрос, наверное, простой, но я с ним промучалась уже два дня. Как программно…

Запуск макроса при закрытии любой активной рабочей книги
Есть макрос, в книге макросов, но как его запустить при закрытии любой активной рабочей книги?…

Сохранение книги Excel в другом месте при закрытии файла
Здравствуйте, помогите макросом: на съемном носителе, который открывается с разных машин есть книга…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

5

Skip to content

На чтение 3 мин. Просмотров 2.9k.

Что делает макрос:  Этот макрос защищает от случайного закрытия файла перед сохранением. Он гарантирует, что Excel автоматически сохранит файл перед закрытием.

Excel обычно предупреждает пользователей, которые пытаются закрыть не сохраненную книгу, давая им возможность сохранить перед закрытием. Тем не менее, многие пользователи могут пропустить это предупреждение, случайно нажать кнопку «Нет».

С этим макросом Вы защитите свой файл от невнимательных пользователей.

Содержание

  1. Как это работает
  2. Код макроса
  3. Как работает этот код
  4. Как использовать

Как это работает

Этот код запускается событием рабочей книги (BeforeClose- перед закрытием). При нажатии на кнопку Закрыть срабатывает событие и запускается макрос. Суть кода проста — он запрашивает у пользователя, действительно ли он хочет закрыть книгу

Как сохранить файл в Excel перед закрытием

Макрос затем проверяет какую кнопку нажал пользователь ОК или Отмена. Оценка производится с помощью конструкции Select Case. Оператор Select Case является альтернативой в If … Then … Else, что позволяет выполнять проверки условий ваших макросов (обычно используется для большого количества условий).

Код макроса

Private Sub Workbook_BeforeClose(Cancel
As Boolean)Выведем сообщение с "ОК" или "Отмена"
Select Case MsgBox("Сохранить и закрыть?",vbOKCancel)
'Если нажал "Отмена", закрываем окно
Case Is = vbCancel
Cancel=True
'Если нажал "Да", то сохраняем книгу
Case Is=vbOK
ActiveWorkbook.Save
'Завершаем проверку, закрываем Select Case
End Select
End Sub

Как работает этот код

Давайте подробно рассмотрим каждую строчку кода

  1. На шаге 1 мы активируем окно c сообщением, где в качестве проверки используем оператор Select Case. Здесь мы используем аргумент vbOKCancel, чтобы на формочке отображались кнопки ОК и Отмена.
  2. Если пользователь нажал кнопку Отмена в окне сообщения, макрос говорит Excel: «Не выходим! Закрой событие!». Это делается путем присвоения переменной Cancel свойства True
    (Верно). Если пользователь нажал кнопку OK в окне сообщений, п. 3 вступает в силу.
  3. Здесь мы говорим Excel: «Сохранить книгу!». Здесь мы не пишем Cancel = True, поэтому событие успешно завершается.
  4. На шаге 4, мы просто закрываем Оператор Select Case.

Как использовать

Для реализации этого макроса, Вам нужно скопировать и вставить его в код события Workbook_BeforeClose. Размещение макроса здесь позволяет запускать макрос непосредственно перед закрытием excel-файла.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
  3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code.
  4. В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open (можете позже удалить его за ненадобностью)
  5. В правом выпадающем списке свойство BeforeClose

How to close an Excel workbook using VBA and macros, including how to save the file before you close it or discard any changes.

Sections:

Selecting Which Workbook to Close

Close Workbook While Saving Changes

Close Workbook Without Saving Changes

Let the User Decide to Save Changes or Not

Notes

Selecting Which Workbook to Close

First, we need to tell the macro to choose the current workbook to close or another workbook to close.

Current Workbook

We use this piece of code to close the current or currently active workbook and close that.

Other Workbook

We use this piece of code to close any specific open workbook.

Workbooks("test.xlsx").Close

Replace test.xlsx with the name of the file that you want to close.

Close Workbook While Saving Changes

To have Excel automatically save any changes for the workbook that you want to close, just put True behind the close workbook code from above like this:

ActiveWorkbook.Close True

or, to close a specific file like this:

Workbooks("test.xlsx").Close True

Close Workbook Without Saving Changes

To have an Excel window close WITHOUT saving any changes, just put False behind the close workbook code from above like this:

ActiveWorkbook.Close False

or, to close a specific file like this:

Workbooks("test.xlsx").Close False

Let the User Decide to Save Changes or Not

You use the basic code from the first section and don’t include a True or False after it and a dialog box will open asking if you want to save the file or not; it looks like this:

Close the currently active or visible workbook:

Close a specific workbook:

Workbooks("test.xlsx").Close

Notes

You may run into issues with messages popping up depending on your implementation of this code and your setup and it can help to turn off ScreenUpdating for Excel. Make sure to turn it back on when you are finished though.

If Application.DisplayAlerts is set to False before you close the workbook, you won’t see a popup asking if you want to save it or not before closing it. If this is the case, you may lose data if you wanted to save the file before closing it, so test your code on a sample workbook first.

Download the sample files for this tutorial to test everything out.

Similar Content on TeachExcel

Open Excel Workbook Using VBA Macros

Tutorial:
Simple way to open an Excel workbook using VBA and macros.

Syntax

Workbooks.Open («File…

Macro to get Data from Another Workbook in Excel

Tutorial:
Macro to get data from a workbook, closed or open, over a network or locally on your comp…

Get User Submitted Data from a Prompt in Excel using VBA Macros

Tutorial: How to prompt a user for their input in Excel.
There is a simple way to do this using VBA …

Interactive Clickable Buttons and Interface Without Using VBA/Macros in Excel

Tutorial:
How to make your Excel dashboards and worksheets more interactive and easier to view and …

Loop through a Range of Cells in Excel VBA/Macros

Tutorial: How to use VBA/Macros to iterate through each cell in a range, either a row, a column, or …

Kill Command in Excel (Delete Files Using VBA)

Tutorial:
How to safely remove, delete, kill any Excel file, or other file, using VBA Macros in Exc…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Понравилась статья? Поделить с друзьями:
  • Vba excel сохранение переменной
  • Vba excel соседнюю ячейку
  • Vba excel сортировка ячейки
  • Vba excel сортировка строки
  • Vba excel сортировка столбца по возрастанию