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!
BRP Пользователь Сообщений: 213 |
Добрый день, уважаемые форумчане! Подскажите макрос, при срабатывании которого документ будет сохранен и закрыт. Хочу сделать кнопку сохранить и выйти… |
Sanja Пользователь Сообщений: 14838 |
#2 29.12.2016 13:33:41
У макрорекордера спрашивали? Согласие есть продукт при полном непротивлении сторон. |
||
BRP Пользователь Сообщений: 213 |
Нет, никогда не пользовался им) |
Sanja Пользователь Сообщений: 14838 |
Самое время начать. Много вопросов отпадёт Изменено: Sanja — 29.12.2016 13:50:27 Согласие есть продукт при полном непротивлении сторон. |
Владимир S Пользователь Сообщений: 109 |
#5 29.12.2016 14:05:12
Изменено: Владимир S — 29.12.2016 16:03:52 |
||
BRP Пользователь Сообщений: 213 |
#6 29.12.2016 17:32:46 После закрытия остается пустое окно Excel, которое приходится закрывать вручную. Как этого избежать? Также конфликтует с другим макросом, практически блокирует его действия.
Изменено: BRP — 29.12.2016 17:36:55 |
||
Владимир S Пользователь Сообщений: 109 |
#7 29.12.2016 21:32:40 А вот так попробуйте.
|
||
Владимир S, а теперь закрываются все открытые книги Excel |
|
BRP Пользователь Сообщений: 213 |
Владимир S
/ Михаил С. Действительно закрывает все книги Excel, конфликт с вышеуказанным макросом остался. Еще варианты есть? |
Михаил С. Пользователь Сообщений: 10514 |
#10 30.12.2016 11:47:40
Изменено: Михаил С. — 30.12.2016 11:49:24 |
||
BRP Пользователь Сообщений: 213 |
#11 30.12.2016 13:35:52 Михаил С.
Огромное СПАСИБО! Все работает идеально!! |
закрытие екселя с сохранением и без предупреждения |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
На чтение 8 мин. Просмотров 6.9k.
Итог: Изучите несколько трюков и советов, чтобы сохранить и закрыть все открытые книги Excel.
Уровень мастерства: Начинающий
Если вы используете Excel весь день каждый день, как я, то у вас, наверняка, открыто много рабочих книг одновременно. Я стараюсь дисциплинировать себя, но иногда это трудно. И в конце дня мы просто хотим закрыть все открытые рабочие тетради и пойти домой! Итак, этот пост содержит несколько советов по быстрому закрытию всех открытых файлов, чтобы помочь сократить трафик в час пик.
Содержание
- Совет № 1: Shift + кнопка закрытия окна
- Совет № 2: добавьте кнопку «Закрыть все» на панель быстрого доступа
- Совет № 3: Закройте все открытые книги с помощью макроса
- У вас есть свои советы по сохранению и закрытию файлов?
Совет № 1: Shift + кнопка закрытия окна
Самый
быстрый способ закрыть все открытые книги — это удерживать клавишу Shift,
нажимая кнопку «Закрыть окно». Кнопка «Закрыть окно» — это «х» в правом верхнем
углу окна приложения
Если все открытые книги были сохранены, все они будут
закрыты.
Если какая-либо из открытых книг НЕ была сохранена, вам
будет предложено сохранить файл. Появится всплывающее окно, и вам придется
нажимать Сохранить или Не сохранять для каждой несохраненной книги.
Окно также содержит кнопку Сохранить все. Вы можете нажать эту кнопку, чтобы сохранить все несохраненные книги за один шаг.
Нажатие на кнопку «Отмена» отменит всю операцию, а все еще открытые книги останутся открытыми.
Но что, если мы не хотим сохранить все или некоторые из открытых рабочих книг? Мы вернемся к этому в совет № 3.
Совет № 2: добавьте кнопку «Закрыть все» на панель быстрого доступа
Мы также можем добавить кнопку «Закрыть все» на панель
быстрого доступа (QAT), чтобы закрыть все открытые книги. Это делает то же
самое, что и сочетание клавиш Shift + Close Window.
Преимущество здесь в том, что мы можем использовать сочетание клавиш для нажатия кнопки. Доступ к кнопкам QAT можно получить с помощью сочетания клавиш, нажав клавишу Alt и номер, назначенный кнопке.
Чтобы добавить кнопку «Закрыть все» в QAT, откройте окно параметров Excel («Файл»> «Параметры») и следуйте инструкциям на изображении ниже.
После нажатия кнопки «Закрыть все» нам будет предложено то же окно, как описано в совете № 1.
Бонусный совет: мы также можем использовать сочетание клавиш Ctrl + W, чтобы закрыть одну книгу. Я упомянул этот совет в своем посте по 17 ярлыкам Excel на 2017 год.
Совет № 3: Закройте все открытые книги с помощью макроса
В этом разделе я поделюсь несколькими макросами, которые можно использовать для закрытия всех открытых рабочих книг. Макросы дают нам большую гибкость, когда мы хотим контролировать, какие книги сохраняются перед закрытием.
Макрос для закрытия всех книг без сохранения
Если мы не хотим сохранять какие-либо открытые файлы, мы
можем использовать следующий макрос.
Sub Close_All_Files_No_Save() ' Закройте все открытые книги и не сохраняйте Dim wb As Workbook ' Просмотрите каждую рабочую книгу For Each wb In Application.Workbooks ' Предотвратить рабочую книгу, которая содержит ' код от закрытия If wb.Name <> ThisWorkbook.Name Then ' Закройте книгу и не сохраняйте изменения wb.Close SaveChanges:=False End If Next wb End Sub
Как работает этот макрос?
Приведенный выше макрос просматривает все открытые книги на компьютере с помощью цикла For Next Loop. Он использует оператор If, чтобы проверить, является ли файл в цикле (wb.Name) НЕ (<>) файлом, который содержит код ThisWorkbook.Name.
Затем он использует метод Workbooks.Close (страница справки MSDN), чтобы закрыть книгу. Метод Close имеет необязательный параметр для SaveChanges. Мы можем установить значение True, чтобы сохранить изменения, и False, чтобы закрыть без сохранения.
Примечание. Этот макрос следует запускать только в том случае, если вы уверены, что не хотите сохранять изменения ни в одном из открытых файлов. Его нельзя отменить. Возможно, вы также захотите добавить окно сообщения Да / Нет, чтобы предупредить пользователя перед запуском этого макроса.
Макрос для сохранения всех, кроме новых несохраненных книг (блокнот)
В конце рабочего дня у меня обычно есть несколько книг, которые я хочу сохранить, и некоторые, которые я НЕ хочу сохранять. Я часто открываю новые рабочие книги, чтобы использовать файлы Excel для быстрых вычислений. Я называю их «блокноты». Я не хочу сохранять их, но хочу сохранить все другие открытые файлы.
Файлы — блокноты никогда не сохранялись, поэтому они еще не имеют расширения. Они называются: Book1, Book2, Book2 и т.д. Обратите внимание, что на снимке экрана отсутствует расширение файла (.xlsx, .xlsm).
Таким образом, мы можем добавить оператор If в наш макрос, чтобы увидеть, существует ли расширение файла. Если расширение файла существует, то мы сохраним файл. Если нет, то мы закроем без сохранения.
Sub Save_and_Close_All_Files_Except_ScratchPads() ' Закройте все открытые книги, кроме новых несохраненных файлов Dim wb As Workbook ' Просмотрите каждую рабочую книгу For Each wb In Application.Workbooks ' Предотвратить рабочую книгу, которая содержит ' код от закрытия If wb.Name <> ThisWorkbook.Name Then ' Проверьте, имеет ли имя файла расширение If InStr(Right(wb.Name, 5), ".xls") > 0 Then wb.Close SaveChanges:=True Else ' Не сохраняйте изменения, если это блокнот. wb.Close SaveChanges:=False End If End If Next wb End Sub
Как работает этот макрос?
Этот макрос похож на макрос для закрытия всех книг. Разница
в том, что мы используем оператор If, чтобы проверить, имеет ли файл
расширение.
Функция Right используется для возврата 5 символов в конце
имени файла. Если wb — это существующий файл, который уже был сохранен, то
Right (wb.Name, 5) вернет «.xlsx» или «.xlsm».
Функция Instr (страница справки MSDN) используется для поиска строки в строке. Возвращает начальный номер строки. Таким образом, если Instr находит «.xls» в пределах «.xlsx» или «.xlsm», он возвращает 1. В противном случае он возвращает 0.
Оператор If проверяет, является ли возвращаемое значение из
Instr больше 0, и сохраняет изменения при закрытии книги. В противном случае
изменения не сохраняются для книг, которые НЕ содержат расширения.
Макрос для сохранения и закрытия всех книг и автоматического именования файлов
Иногда нам можем быть нужно сохранить некоторые из этих новых файлов (блокноты), но у нас нет времени, чтобы просмотреть каждый файл и сохранить его с именем.
Следующий макрос сохранит и закроет ВСЕ файлы и автоматически назовет новые файлы, которые не были сохранены. Он помещает все новые файлы (блокнот) в указанную вами папку.
Затем вы можете вернуться в эту папку, когда у вас будет свободное время для перемещения и переименования файлов.
Sub Save_and_Close_All_Files() ' Закройте все открытые книги, кроме новых несохраненных файлов Dim wb As Workbook Dim sPath As String ' Путь, где будут сохранены новые несохраненные файлы. ' Измените это на папку на вашем компьютере. Конец с обратной косой чертой sPath = "C:UsersusernameDocumentsExcel CampusScratch Pads" ' Просмотрите каждую рабочую книгу For Each wb In Application.Workbooks ' Предотвратить рабочую книгу, которая содержит ' код от закрытия If wb.Name <> ThisWorkbook.Name Then ' Проверьте, имеет ли имя файла расширение If InStr(Right(wb.Name, 5), ".xls") > 0 Then wb.Close SaveChanges:=True Else ' Сохранить блокноты в папке wb.Close SaveChanges:=True, _ Filename:=sPath & wb.Name & Format(Now, " yyyy-mm-dd-hhmm") End If End If Next wb End Sub
Как работает этот макрос?
Этот макрос работает аналогично двум другим выше.
Единственное отличие состоит в том, что он сохраняет новые файлы (блокноты) в
папку на вашем компьютере.
Чтобы использовать этот макрос, вам нужно изменить
переменную sPath на папку на вашем компьютере. Обязательно заканчивайте строку
пути к файлу обратной косой чертой.
У метода Workbooks.Close есть еще один необязательный
параметр (Filename), который позволяет нам указать имя файла, в котором мы
хотим сохранить файл, если файл еще не был сохранен.
Если мы не используем параметр «Имя файла», Excel предложит
нам меню «Сохранить как» для каждого файла. Таким образом, указание имени файла
обходит это окно и может сэкономить нам много времени.
Значение параметра Filename объединяет строку для полного
пути к файлу. Он также изменяет текущую дату и время до конца имени файла,
используя функции «Формат» и «Сейчас». Функция Format в VBA аналогична функции
TEXT в Excel и позволяет нам указать числовой формат. Функция «Сейчас»
возвращает текущую дату и время на компьютере пользователя.
Я рекомендую добавить эти макросы в вашу личную книгу макросов, чтобы вы могли использовать их в любое время. Чтобы узнать больше, ознакомьтесь с моей статьей и видео о личной книге макросов.
У вас есть свои советы по сохранению и закрытию файлов?
Я надеюсь, что эти советы и макросы помогут вам закончить день немного быстрее. Есть ли у вас какие-либо другие советы по закрытию файлов? Пожалуйста, оставьте комментарий ниже с любыми предложениями или вопросами. Спасибо!
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||||||
1 |
||||||||
13.01.2011, 21:13. Показов 26025. Ответов 27 Метки нет (Все метки)
Вроде изучил этот вопрос Но пишу так
так
вопросов нет, но мне так не надо
0 |
Pavel Murtishev 3 / 3 / 0 Регистрация: 29.10.2010 Сообщений: 54 |
||||
14.01.2011, 08:51 |
2 |
|||
Эндрю, Workbooks — это коллекция объектов Workbook. Попробуйте исполнить данный код:
Должно работать. BR
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||||||||||
14.01.2011, 18:53 [ТС] |
3 |
|||||||||||
Вы меня не поняли:
затем делаю что хочу
если напишу так:
всё работает, но мне так не надо, так как Эксель спросит, сохранить ли файл, надо чтобы сохранил без вопросов
0 |
Заблокирован |
|
14.01.2011, 19:45 |
4 |
oExcel.Workbooks.Close(SaveChanges = True) ‘ошибка аргумент не верный??????? вытащи из скобок и пробелом отбей.
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
14.01.2011, 20:22 [ТС] |
5 |
|||
теперь
выделяет .Close и сообщение Wrong number of arguments or invalid property assigment
0 |
Заблокирован |
|
14.01.2011, 21:15 |
6 |
Ципихович Эндрю,
0 |
Vlanib Частенько бываю 749 / 330 / 42 Регистрация: 20.06.2007 Сообщений: 854 |
||||
14.01.2011, 22:25 |
7 |
|||
Вот так напиши:
0 |
Заблокирован |
|
14.01.2011, 22:30 |
8 |
Vlanib,
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
15.01.2011, 11:36 [ТС] |
9 |
|||
Вот этот скрипт я запускаю в ВБА в Ворде, на двух последних строчках выделяет
0 |
Заблокирован |
|
15.01.2011, 11:46 |
10 |
Ципихович Эндрю,
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||||||||||||||
15.01.2011, 12:05 [ТС] |
11 |
|||||||||||||||
11 строку удалил
надо сравнить с строкой
и найти 10 отличий
Вё мимо, ещё 8 отличий не нашёл Добавлено через 4 минуты
0 |
Заблокирован |
|
15.01.2011, 12:16 |
12 |
Ципихович Эндрю,
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
15.01.2011, 12:23 [ТС] |
13 |
|||
Ципихович Эндрю, 10 строка в моём 9 м сообщениии, это вот эта:
Во всяком случае она рабочая, ну пусть даже её я заремарчу, ничего ведь не изменится
0 |
Заблокирован |
|
15.01.2011, 12:31 |
14 |
Ципихович Эндрю,
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
15.01.2011, 12:54 [ТС] |
15 |
я её не с потолка взял, искал не могу вспомнить из какого места я её взял
0 |
Заблокирован |
||||
15.01.2011, 12:56 |
16 |
|||
Ципихович Эндрю, Добавлено через 1 минуту
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||||||
15.01.2011, 13:04 [ТС] |
17 |
|||||||
Я Вас уверяю в Ворде, что так
что так
работает!
0 |
Заблокирован |
|
15.01.2011, 13:10 |
18 |
Ципихович Эндрю,
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||||||||||
15.01.2011, 13:22 [ТС] |
19 |
|||||||||||
запускаю с Ворда
почему я должен так писать и получать ошибку 91
почему я не должен так писать и не получать ошибку, и получать нужный результат???
0 |
Заблокирован |
|
15.01.2011, 13:24 |
20 |
Ципихович Эндрю, Добавлено через 53 секунды
почему я должен так писать так запрограммировано.
0 |
закрытие екселя с сохранением и без предупреждения (Макросы/Sub)
Смотрите также клавиатуре) для нажатия кнопки: просто скрывает формулу перехватывать события на сценарии. Она такая. с Книги3 в
Mishel915 одном Макросе1) книги. ‘и закрываю окно
: Кнопочка с решёткой,
As Excel.Application) app.ActiveWorkbook.Close
как. По-видимому, работающий
:
другое сообщение, хотя
файл Эксель, да
True)85Muslim85
Не хочу размещать
Private Sub CommandButton1_Click()
от пользователя уровне Application. В коллекции Workbooks
Книгу1, потом перейти
:Если команда о редактора VBA
однако
0 app.Quit End
макрос не дает
Mary_Rustle ничего принципиального я так чтобы иWorkbooks.Close True: добрый день, скажите
кнопки на форме
Unload Me Setметод Unload (имяMishel915 фиксируется определённый порядок в Книгу2, потом
EducatedFool !
закрытии книг поступаетВозможно и ВамGlen SubА в самой выполнить команду Quit., а какой смысл
не поменяла: в скрытых процессах' закрыть без как закрыть ексель
- так сделай
UserForm1 = Nothing формы) — выгружает: Работает так : чередования открытых книг,
перейти в Книгу1,
Спасибо за этюд.
из Книги1, то
excelworld.ru
VBA Access: как закрыть книгу Эксель без сохранения?
это поможет.: не получается код
книге прописать Можно попробовать накидать открывать файл Excel
Помогите, пожалуйста, это его тоже не сохранения (без запроса (полностью выйти) с ее масенькой (все End Sub форму из памятиSub Макрос1() Dim
который не меняется.
после чего податьДа, необходимо было закрывается только Книга1.Glen прикрепитьSub QE() Dim нажатий клавиш, типа и запускать макрос, очень большая проблема, было. подтверждения пользователя, даже сохранением под таким размеры и положение=1flower2005 и закрывает её wb As Workbook Код размещён в команду о закрытии подойти к ThisWorkbook Книга2 остаётся открытой.:Glen obj As ObjectКод Sub closeE() если файл потом уже долго бьюсь
Я делаю следующее: если .DisplayAlerts = же названием и — прекрасно работает.Пусть: А может быть,CердЖиГ
For Each wb Книге3, а запускается двух книг, то с другой стороныОчевидно это происходит
ОлеггелО:
Set obj = Set sh =
закрывается без сохранения над ней, никаких
Private Sub Кнопка0_Click() True) без предупреждения в проекте существует стоит обработать событие: Всем спасибо уже In Workbooks If с Книги1. Как закрывается только Книга1? ! из-за того, что,Sub rr() CreateObject(‘Имя класса’) obj.ExcelQuit CreateObject(‘WScript.Shell’) sh.SendKeys (‘{F10}{Down (oBook.Close успехов! FullFilePath = «C:Папка7Workbooks.Close Falseскажите что в
Userform1, тогда: UserForm_KeyPress и, сделал так :-) wb.Name <> Application.ActiveWorkbook.Name только в коде Книга2 остётся неДостаточно всего лиш управляющая книга (книгаспс.Set VBProj = Application End SubЕсли 9}{Enter}{Right}{Enter}’) End SubFalseMary_Rustle
свод реестров 2015_9.xlsm»’ закрыть Excel этом коде неPrivate Sub UserForm_KeyPress(ByValесли это клавиша
CyberForum.ru
Надо закрыть через VBA Excel ,без сохранения и без выскакивания запросов на сохранеие
Private Sub CommandButton1_Click() And wb.Name <> подошла очередь закрыть закрытой?Sub test() Dim
с управляющим макросом)Mishel915
ActiveWorkbook.VBProject установлен ODE, то Здесь надо подрегулировать)? Этот макрос, что: Ответ найден!
Dim app As (закроется только если так(((( KeyAscii As MSForms.ReturnInteger) ESC, выполнить закрытиеUnload userform1 ThisWorkbook.Name Then wb.Close Книгу1, код её4. Если перейти wb As Workbook
закрывается первой, после: Всем доброе времяSet VBComp = создание такой dll цифру в {Down ли, создает какой-тоВидимо плохо раньше Object Set app в этом же200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub вава() If KeyAscii =
формы, а наActiveWorkbook.Save Next Application.ActiveWorkbook.Close End закрывает, после чего с Книги3 в
For Each wb чего выполнение Макроса1
суток ! VBProj.VBComponents(«Лист3») займет несколько минут
9}. Да и другой файл, который старалась
= CreateObject(«Excel.Application») With Application больше нетRange(«A1») = 1 27 Then MsgBox другие клавиши не
End Sub Sub выполнение кода прекращается Книгу1, потом перейти In Workbooks If
прекращается.Две книги ExcelSet CodeMod =Glen работает это только потом используется?Изменила код следующим app .Workbooks.Open FullFilePath
CyberForum.ru
Закрыть окно редактора VBA макросом (Макросы/Sub)
открытых и неWorkbooks.Application.DisplayAlerts = False
‘Была нажата ESC, реагировать.Pavel55СердЖиГ
так как код в Книгу2, потом wb.Name <> ThisWorkbook.NameТакой вопрос :
(Книга1 и Книга2) VBComp.CodeModule
: Доброго дня. с листа Excel,
Mary_Rustle образом:
End With app.Run
сохраненных книг,Excel.ActiveWorkbook.SaveAs («rl.xlsm»)
прячем форму’ UserForm1.Hideflower2005: )) ну, всё
: Уважаемые форумчане! запущен с Книги1. перейти в Книгу1,
Then wb.Close Next какой должен быть закрываются в одном
With CodeModВ работе макрос а из среды
:Private Sub Кнопка0_Click()
"diap" app.Quit Set' иначе будет
Workbooks.Close Else 'ничего не
: Кто тебя учил
правильно) только выНапомните, плиззз, команды
Все книги, которые потом перейти в
End SubКнига3 должна код для закрытия
макросе, например так
lLineNum = .CreateEventProc("Change",
переносит модуль процедуры
разработки не работает.Казанский FullFilePath = «C:папка7 app = Nothing запрашивать подтверждения сохранения,End Sub делаем End If выгружать (unload) форму спрашивали о сохранении в VBA для
всех книг, записанных :
стоят в очереди Книгу2, после чего оставаться для выбора
«Worksheet») события на новыйoldpasp, спасибо) Действительно глупость.
свод реестров 2015_9.xlsm»
excelworld.ru
Как в одном макросе закрыть все книги Excel?
DoCmd.SetWarnings False DoCmd.RunSQL при .DisplayAlerts =KSV
End SubКстати, а в кнопке? Не формы, а сами сохранения и закрытия на закрытие после
подать команду о
нового действия. в Макросе1, неКод:lLineNum = lLineNum лист.: Так как макрос Исправила на (oBook.Save). Dim app As «DELETE Свод_реестров.* FROM True)
: все правильно какие элементы есть руби сук, на сохраняете активную книгу
userform.
Книги1, теперь не закрытии двух книг,Не всё пока
зависимо от порядкаSub Макрос1() On + 1При этом почему расположен в какой-либо
Штурмaн Object Dim oBook Свод_реестров» DoCmd.TransferSpreadsheet acImport,Application.Quit200?’200px’:»+(this.scrollHeight+5)+’px’);»>’ подавляет предупреждения Excel на форме? котором сидишь! Напиши
) или намСпасибо! закроются из-за того, то закрываются обе получается. расположения книг в Error Resume Next.InsertLines lLineNum, «call то само открывается книге, то выполнив: Помогите чайнику.Надо закрыть As Object Set , «Свод_реестров», FullFilePath,85Muslim85
Workbooks.Application.DisplayAlerts = FalseКод может и в коде кнопки надо было догадатьсяPavel55 что код уже книги!1. Если перейти
Макросе1. Очевидно в Workbooks(«Книга1»).Close (SaveChanges) Workbooks(«Книга2»).Close Izm(Target)» окно редактора VBA.
команду через VBA Excel app = CreateObject(«Excel.Application») True, «Свод_реестров» CurrentDb.Execute
: все отлично)) спасибки…
’ сохраняет книгу не сработать, если, me.hide — это ?): А что значит не выполняется.Таким образом в с Книги3 в Макросе1 необходимо определить
(SaveChanges) On ErrorEnd With
По типу Alt+F11.Application.Quit получаем запрос ,без сохранения и Set oBook = «DROP TABLE [Свод_реестров_ОшибкиИмпорта]» вот чего я
в файл С например, фокус на переведет тебя вСердЖиГ сохранить? У формыКод будет срабатывать 3-ем сценарии код Книгу1, после чего
управляющую книгу, т. GoTo 0 EndVBProj.VBE.MainWindow.Visible = FalseПодскажите как кодом на сохранение без app.workbooks.Open(FullFilePath) app.Run «diap» DoCmd.SetWarnings True MsgBox хотел) ДРУГИМ именем TextBox(e).Только ListBox
команду в вызывающей: Павел, сорри, уже нет такой функции всегда, если его почемуто не видит подать команду о е. книгу с SubМакрос1 находится вEnd Sub его закрыть.А если предварительно
выскакивания запросов на oBook.Close False app.Quit «Импорт успешно завешен»Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.SaveAs («rl.xlsm»)К этой процедуре процедуре после show
вечер был :-)А закрыть можно запускать с книги Книги2. закрытии Книги1, то которой поступила команда, Книге3. Проэкт состоитОлеггелОGlen закрыть книгу без сохранеие Set app = End SubРаньше всеExcel.ActiveWorkbook.Save’ сохраняет книгу надо обратиться с — сделай там,Димит так в которой онMishel915 закрывается! и закрыть её из трёх книг:: Вроде так помогает сохраненияpalva Nothing DoCmd.SetWarnings False
работало хорошо заApplication.Quit в файл С фактическим параметром KeyAscii что требуется, а
: Не получается закрытьSub Макрос1() размещён.: Установил причину не2. Если перейти последней. — Книга1, Книга2,GlenSet VBProj =Application.ActiveWorkbook.Close 0 то
: Закрыть одну из DoCmd.RunSQL «DELETE Свод_реестров.*
исключением следующего: когдаMary_Rustle ТЕМ ЖЕ именем — как это затем выгружай форму! форму при нажатии’или такЕсли код запускать срабатывания кода
CyberForum.ru
VBA сохранить&закрыть userform
с Книги3 вEducatedFool
Книга3., здравствуйте. Я так ActiveWorkbook.VBProject работа макроса прекращается
книг, если макрос
FROM Свод_реестров» DoCmd.TransferSpreadsheet уже после успешного: Добрый день!Excel.ActiveWorkbook.Save
— ПРОШУ ПРОЩЕНИЯJohnyДимит
ESC!!
Unload UserForm1 ‘закрыть
с других книг,Sub test() Dim Книгу1, потом перейти
: Sub test() Dim
Если команда о
делал (топорно конечно),
VBProj.VBE.MainWindow.Visible = False (книга то закрывается) находится в другой,
acImport, , «Свод_реестров», выполнения модуля яМои попытки найти’ закрывает книгу
Walkerу: Не хочу размещатьПомогите!!
и выгрузить из
то на его
wb As Workbook
в Книгу2, после
wb As Workbook закрытии книг поступает добавьте перед «EndGlenЗначит надо объединить можно так: FullFilePath, True, «Свод_реестров» пыталась открыть файл нужное не увенчались
Workbooks.CloseПочему нельзя Unload кнопки на форме
planetaexcel.ru
VBA Excel закрытие формы на листе
flower2005 памяти форму работу будет влиять For Each wb
чего подать команду
For Each wb из Книги2, например sub»: Код не покажу. эти команды: можноКод Application.DisplayAlerts =
CurrentDb.Execute «DROP TABLE эксель, мне выдавалось успехом, помогите пожалуйста!’ закрыть с
в кнопке? — как и: Разместите на форме’или так
порядок размещения открытых In Workbooks If о закрытии двух In Workbooks If так :
SendKeys «%{F11}», True ‘делаюНе знаю как сделать dll (AddIn), False Windows(‘Книга2’).Close Application.DisplayAlerts [Свод_реестров_ОшибкиИмпорта]» DoCmd.SetWarnings True следующее предупреждение:Нужно после запуска сохранением (без запросаА куда Я где завязать закрытие кнопку. Установите еёUserForm1.Hide ‘скрыть форму книг в коллекции wb.Name <> ThisWorkbook.Name
книг, то закрываются wb.Name <> ThisWorkbook.NameКод: активным окно редактора его тут правильно где будут выполняться = True Закрыть MsgBox «Импорт успешно
Теперь не понятно модуля Эксель через подтверждения пользователя, даже выйду, если форма моей формы на свойство Сancel какEnd Sub Workbooks! Очевидно на
Then wb.Close Next обе книги! Then wb.Close NextApplication.Run «‘Книга3.xls’!Макрос1″,то закрываются VBA оформить. эти действия весь Excel из завешен» End Sub по какой причине, Аксесс полностью закрыть
если .DisplayAlerts = vbModeless? нажатие Esc (на True. Напишите код
метод Hide - такой случай необходимо End Subв 3-ем3. Если перейти ThisWorkbook.Close End Sub обе (все в
SendKeys «%{F4}», TrueUdik
Public Sub ExcelQuit(app макроса не знаюКазанский
CyberForum.ru
он стал выдавать
Автор Carl, 23 июля 2019, 11:24
Carl
- Посетитель форума
- Сообщения: 40
- Записан
С помощью какого кода можно сохранить и закрыть книгу?
Администратор
- Administrator
- Сообщения: 2,254
- Записан
Макрос работает с активным файлом (это файл, который отображается на мониторе).
Sub Макрос()
‘ Сохранение файла.
ActiveWorkbook.Save
‘ Закрытия файла.
‘ SaveChanges:=False — чтобы не было сообщения, предлагающего сохранить изменения.
‘ Ранее в коде сделано сохранение, но бывает так, что, не смотря на это, при закрытии
‘ файла появляется сообщение, предлагающее сохранить изменения.
ActiveWorkbook.Close SaveChanges:=False
End Sub
Carl
- Посетитель форума
- Сообщения: 40
- Записан
Спасибо помогло.
При запуске этого макроса появляется сообщение: Предупреждение о конфиденциальной информации…
Почему появляется это сообщение?
Администратор
- Administrator
- Сообщения: 2,254
- Записан
Это сообщение появляется, т.к. здесь установлена галочка (Excel 2016): Файл — Параметры — Центр управления безопасностью — Параметры центра управления безопасностью… — Параметры конфиденциальности — Параметры для конкретного документа — Удалять персональные данные из свойств файла при сохранении.
Есть два варианта, чтобы не было этого сообщения:
1) уберите эту галочку;
2) окружите сохранение файла таким кодом:
‘ Сохранение файла.
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
Carl
- Посетитель форума
- Сообщения: 40
- Записан
Большое спасибо. Супер форум.
- Форум по VBA, Excel и Word
-
►
VBA, Excel -
►
VBA, макросы в Excel -
►
Excel VBA Макросы: Код макроса для сохранения и закрытия книги.
Эти макросы помогут вам закрыть все открытые файлы Excel, оставив лишь текущий файл.
Выбирайте любой из них — они мало чем отличаются.
Первый оставляет открытой только активную книгу, независимо от того, из какого файла запущен этот макрос:
Sub CloseAllWorkbooks1() ' закрываем все книги, кроме текущей (активной) Dim wb As Workbook: Application.ScreenUpdating = False For Each wb In Workbooks ' перебираем все открытые книги If Not wb Is ActiveWorkbook Then ' если это не этот файл If wb.Windows(1).Visible Then wb.Close ' закрываем его End If Next wb End Sub
Второй макрос оставляет открытой только ту книгу, из которой запущен этот самый макрос, независимо от того, какая книга активна на момент запуска:
Sub CloseAllWorkbooks2() ' закрываем все книги, кроме той, из которой запущен макрос Dim wb As Workbook: Application.ScreenUpdating = False For Each wb In Workbooks ' перебираем все открытые книги If Not wb Is ThisWorkbook Then If wb.Windows(1).Visible Then wb.Close Next wb End Sub
Третья версия макроса отличается от первой лишь тем, что все файлы закрываются с сохранением изменений:
(первый макрос в этом случае выдаёт диалоговое окно — сохранять файл, или нет)
Sub CloseAllWorkbooks3() ' закрываем все книги, кроме текущей (активной), С СОХРАНЕНИЕМ изменений Dim wb As Workbook: Application.ScreenUpdating = False For Each wb In Workbooks ' перебираем все открытые книги If wb.Windows(1).Visible = True And (Not wb Is ActiveWorkbook) Then ' закрываем с сохранением только изменённые файлы wb.Close (Not wb.Saved) ' ранее сохранённые файлы просто закрываются End If Next wb End Sub
Ну и четвертый вариант — тоже закрывает все открытые файлы, только изменения в этих файлах не сохраняются:
Sub CloseAllWorkbooks4() ' закрываем все книги, кроме текущей (активной), БЕЗ СОХРАНЕНИЯ изменений Dim wb As Workbook: Application.ScreenUpdating = False For Each wb In Workbooks ' перебираем все открытые книги If wb.Windows(1).Visible Then If Not wb Is ActiveWorkbook Then wb.Close False Next wb End Sub