Vba как закрыть все excel

Содержание

  1. Метод Workbook.Close (Excel)
  2. Синтаксис
  3. Параметры
  4. Замечания
  5. Пример
  6. Поддержка и обратная связь
  7. Как закрыть сразу все книги
  8. Как макрос работает
  9. Код макроса
  10. Как работает этот код
  11. Как использовать
  12. VBA Excel. Рабочая книга (открыть, создать новую, закрыть)
  13. Открытие существующей книги
  14. Проверка существования файла
  15. Создание новой книги
  16. Обращение к открытой книге
  17. Как закрыть книгу Excel из кода VBA
  18. 37 комментариев для “VBA Excel. Рабочая книга (открыть, создать новую, закрыть)”
  19. Excel vba закрыть excel без сохранения
  20. Макрос закрытия книги без сохранения
  21. закрытие екселя с сохранением и без предупреждения (Макросы/Sub)
  22. Закрытие Excel макросом без запроса о сохранении
  23. Выход из документа без сохранения.
  24. Закрыть Excel, не сохраняя файл
  25. Как зарыть файл без сохранения (Excel/VBA )?
  26. Закрыть файл Excel с сохранением сделанных изменений
  27. Закрыть форму без сохранения изменений

Метод Workbook.Close (Excel)

Синтаксис

expression. Close (SaveChanges, FileName, RouteWorkbook)

Выражение Переменная, представляющая объект Workbook .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Savechanges Необязательный Variant Если в книге нет изменений, этот аргумент игнорируется. Если в книге есть изменения, а книга отображается в других открытых окнах, этот аргумент игнорируется. Если в книге есть изменения, но книга не отображается в других открытых окнах, этот аргумент указывает, следует ли сохранять изменения. Если задано значение True, изменения сохраняются в книге.

Если имя файла еще не связано с книгой, используется имя файла . Если параметр FileName опущен, пользователю будет предложено указать имя файла. FileName Необязательный Variant Сохраняет изменения под этим именем файла. RouteWorkbook Необязательный Variant Если книга не требуется маршрутизировать к следующему получателю (если она не имеет скольжения маршрутизации или уже была перенаправлена), этот аргумент игнорируется. В противном случае Microsoft Excel направляет книгу в соответствии со значением этого параметра.

Если задано значение True, книга отправляется следующему получателю. Если задано значение False, книга не отправляется. Если этот параметр опущен, пользователю будет предложено отправить книгу.

Замечания

При закрытии книги из Visual Basic в ней не выполняются макросы Auto_Close. Используйте метод RunAutoMacros для запуска макросов Auto_Close.

Пример

Этот пример закрывает Book1.xls и удаляет все внесенные в него изменения.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Как закрыть сразу все книги

Что делает макрос: Данный макрос позволяет закрыть все открытые рабочие книги одновременно.

Как макрос работает

В этом макросе, коллекция Workbooks перебирает все открытые рабочие книги. По мере того, как макрос проходит через каждую книгу, он сохраняет и закрывает их.

Код макроса

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

  1. Объявляем переменную, которая представляет собой объект книга. Это позволит перебирать все открытые книги.
  2. С помощью цикла просто проходит через все открытые книги.
  3. Закрываем книгу (Excel затем выдаст сообщение с предложением сохранить изменения).
  4. Сохраняем изменения. Если Вы не хотите, чтобы их сохраняли, нужно изменить аргумент Savechanges значение с True на false.

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

Лучшее место, чтобы сохранить этот макрос — это ваша книга личных макросов. Таким образом, макрос всегда будет доступен для вас. Книга личных макросов загружается при запуске Excel. В окне VBE проекта, он назван personal.xlsb.

  1. Активируйте редактор Visual Basic, нажав ALT + F11 на клавиатуре.
  2. Щелкните правой кнопкой мыши personal.xlb в окне Project.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Если вы не видите personal.xlb в окне проекта, он еще не существует. Вы должны записать макрос, используя книгу личных макросов в качестве конечного пункта.

Чтобы записать макрос в личной книге макросов, выберите пункт: Личная книга макросов в диалоговом окне записи макроса перед началом записи. Просто записать пару кликов, а затем остановить запись. Вы можете сбросить записанный макрос и заменить его с этим.

Источник

VBA Excel. Рабочая книга (открыть, создать новую, закрыть)

Открытие книги Excel из кода VBA. Проверка существования книги. Создание новой книги, обращение к открытой книге и ее закрытие. Методы Open, Add и Close.

Открытие существующей книги

Существующая книга открывается из кода VBA Excel с помощью метода Open:

В кавычках указывается полный путь к открываемому файлу Excel. Если такой файл не существует, произойдет ошибка.

Проверка существования файла

Проверить существование файла можно с помощью функции Dir. Проверка существования книги Excel:

Или, если файл (книга Excel) существует, можно сразу его открыть:

Создание новой книги

Новая рабочая книга Excel создается в VBA с помощью метода Add:

Созданную книгу, если она не будет использоваться как временная, лучше сразу сохранить:

В кавычках указывается полный путь сохраняемого файла Excel, включая присваиваемое имя, в примере — это «test2.xls».

Обращение к открытой книге

Обращение к активной книге:

Обращение к книге с выполняемым кодом:

Обращение к книге по имени:

Обратиться по имени можно только к уже открытой книге, а чтобы из кода VBA Excel книгу открыть, необходимо указать полный путь к файлу.

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

Открытая рабочая книга закрывается из кода VBA Excel с помощью метода Close:

Если закрываемая книга редактировалась, а внесенные изменения не были сохранены, тогда при ее закрытии Excel отобразит диалоговое окно с вопросом: Вы хотите сохранить изменения в файле test1.xlsx? Чтобы файл был закрыт без сохранения изменений и вывода диалогового окна, можно воспользоваться параметром метода Close — SaveChanges:

Закрыть книгу Excel из кода VBA с сохранением внесенных изменений можно также с помощью параметра SaveChanges:

Фразы для контекстного поиска: открыть книгу, открытие книги, создать книгу, создание книги, закрыть книгу, закрытие книги, открыть файл Excel, открытие файла Excel, существование книги, обратиться к открытой книге.

37 комментариев для “VBA Excel. Рабочая книга (открыть, создать новую, закрыть)”

А что делать если открываемая книга спрашивает, стоит ли ей обновляться и выполнение кода приостанавливается, пока пользователь не нажмёт кнопку? Как скрывать это сообщение? Пытался писать

Если речь идет об обновлении связей между книгами, то попробуйте так:

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

Жаль, спасибо.
Кстати, если вдруг кому-то нужно, изменить название excel в шапке документа (но при сохранении всё равно будет предлагаться «Книга n»), то можно сделать так:

Здравствуйте.
А как поступить, если имя книги заранее неизвестно. Есть-ли в VBA что-нибудь вроде диалогового окна «Открыть книгу».
Или, допустим, поиск всех книг в определённой папке.

Здравствуйте, Вячеслав!
Для выбора книги в определённой папке используйте Стандартный диалог выбора файлов Application.GetOpenFilename.

Добрый!
Из Аутлука открываю эксель файл. Имя его каждый раз — разное. Как закрыть его так, чтобы при этом закрывалось само приложение Эксель? Сохранять изменения не нужно.
Код:

закрывает саму книгу, но при этом сама прога остаётся висеть со своим интерфейсом. Можно нажать Ctlr+O и открыть какой-нибудь xls-файл.
При этом на компе могут быть открыты другие файлы, поэтому команда

не допустима.
Что делать?

Сергей, используйте глобальные переменные, если файл Excel открывается и закрывается разными процедурами (переменные позволят закрыть тот самый файл и тот самый экземпляр приложения, в котором открыт файл):

А как открывать книгу, если имя файла совпадает с названием из массива.
То есть есть массив переменных которые записаны в столбец начиная с столбца А строки 2. Названия всегда разные.но совпадают с названием файла. Можно ли поочередно открыть их для редактирования через VBA

Привет, YAN!
Используйте следующий код для открытия по очереди файлов Excel, имена которых записаны в первый столбец со второй ячейки:

Объявление глобальной переменной n размещено в разделе Declarations программного модуля. Число 15 соответствует номеру строки последней ячейки диапазона с именами рабочих книг.

имеется 2 книги (обе открытые)

Книга 1 Лист1 ячейка D4 формула ссылается на вторую книгу
='[Книга 2.xls]Лист1′!$F$5

Используя ссылку (без ручного ввода) надо обратиться Книга 2, скопировать 5 строк ниже ссылки (строка6:строка10) и вставить в рабочую книгу(Книга 1)

0mega, а ‘[Книга 2.xls]Лист1’!$F$5 — это постоянное значение? И в какое место какого листа Книги 1 строки должны быть вставлены?

«… а ‘[Книга 2.xls]Лист1’!$F$5 – это постоянное значение? …»
Нет !
Сценарий такой.
В бухгалтерии есть такой термин «Инвентаризация»
В связи с пандемией — движение по складу было минимальное. Большинство позиций остались нетронутыми.
Значит нет необходимости «набивать мозоли» на повторном вводе.
Я вижу такое решение
Есть Книга1.
Юзер открывает прошлогодний файл и (напр. в ячейке F5) визуально сравнивает итоговые значения с настоящими.
если показания совпадают — тогда проверяется Лист2, Лист3…потом будет другая книга
Если значение F5 (это тоже не постоянный адрес ) не совпадает с реальным, тогда в Книга1 юзер ставит «=» и кликает на F5 другой книги
В Книге1 автоматически формируется адрес неправильного значения.
Теперь топчем кнопочку макроса.
макрос берет адрес из ссылки и обращается ко второй Книге, копирует нужный мне массив и загружает в Первую книгу.
Юзер лечит (меняет, добавляет, редактирует ) больной массив и отправляет обратно.
Возможно есть какой-то более простой способ, но «самая короткая дорога — это та которую ты знаешь»

Этот код VBA копирует пять строк под указанной ячейкой из открытой книги Excel по адресу из ячейки D4 Листа1 текущей книги и вставляет их в текущую книгу в пять строк под ячейкой D4 Листа1:

Источник

Excel vba закрыть excel без сохранения

Макрос закрытия книги без сохранения

​Смотрите также​​Private Sub CommandButton4_Click()​
​ и получать нужный​ как правильно?​ #2 объект, точка​ As Excel.Application Dim​Set oExcel =​ это сделать через​ & » /T»,​Ответ:​

​ что при событии​​ к строковым переменным​
​ActiveWorkbook.Close True​ так:​ кликом сохранялся файл​Workbooks.Close​
​ не работает (​vadim​ Set_windows.Hide End Subпри​ результат. ​Но ведь в​

​ Клозе, ну сделал​​ oWorkbook As Excel.Workbook​ CreateObject(«Excel.Application») ‘создать объект​ regional settings, а​
​ vbHide Else: MsgBox​Разместите этот код​ открытия файла из​Вы пытаетесь прицепить​
​End If​
​Sub TestClose()​ и закрывался Excel?​

​: ActiveWindow.Close​​ закрытии все настройки​

​oExcel.Worksheets(«Лист1»).Range(«a1»).Font.Size = 14​​ Ворде в том​ так​ Dim Количество_найденного_текста As​ Microsoft Excelзатем делаю​

​ вот как бы​​ «Excel не может​ в модуле книги,​ некоторой папки, переписываются​

​ значение типа Integer,​​End Sub​Application.Run «ВосстановитьИнтерфейс»​Юрий М​KSV​

​: Вы, если спрашиваете,​​При закрытии книги​
​ сохраняются, при открытии​
​Busine2009​

​ скрипте который я​так как не​

​ Long Set oExcel​​ что хочу​ программно?​ закрыться, наверное вы​ (обычно с названием​ модули в VBA​ возвращаемое функцией​openid.mail.ru/mail/vlad3622340​Application.Quit​: Не это ищете:​: все правильно​
​ то хоть читайте​ появляется окно «Сохранить​
​ снова этой формы​
​:​

​ представил не ругается,​​ знаю как правильно,​
​ = CreateObject(«Excel.Application») ‘создать​. ​
​Ципихович Эндрю​
​ не сказали пожалуйста»,​
​ ЭтаКнига)​ в открытый файл.​InStr(sName, »&»)Андрей​: Спасибо, Юрий, ещё​ActiveWorkbook.Close True​

​ Workbooks(имя).Close true Или​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>’ подавляет предупреждения Excel​ ответы. Ведь ясно​ изменения в файле?»​ с следующий раз-​Ципихович Эндрю​ выполнается и есть​ приходится угадывать​ объект Microsoft Excel​

​хочу закрыть без​
​: Вроде изучил этот​
​ 16: Cancel =​

​Option Explicit Private​​ Модули предназначены для​

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

​wertt​​ раз!​End Sub​ активная книга​Workbooks.Application.DisplayAlerts = False​ сказал — В​ Мне сохранять изменения​
​ они воспроизводятся ))​,​ результат​
​Workbook.Close savechanges =​
​ oExcel.Workbooks.Open («L:Г.xls») oExcel.Visible​
​ вопросов, пишу так:​
​ вопрос​
​ 1 End If​
​ Sub Workbook_BeforeClose(Cancel As​

​ того что-бы не​​: Все равно ошибка​
​Вроде разобрался.​
​А в модуле​
​openid.mail.ru/mail/vlad3622340​’ сохраняет книгу​ МОДУЛЬ КНИГИ. В​
​ не надо. Какой​
​ такого быть не​в 5 строке​согласно её текста,​
​ False ‘424 ошибка​
​ = True ‘задаём​
​oExcel.Workbooks.Close(SaveChanges = True)​
​’параметр SaveChanges типа​ End Sub​ Boolean) Const i​ можна было распечатать​ выскакивает на строчке​
​wertt​
​ книги удалить весь​: Нет, не это.​ в файл С​ ответ: «Вставил отдельным​ надо написать макрос​
​ должно?))​
​ помести в переменную​ что за подвох??​ oExcel.Close savechanges =​ размер шрифта для​ ‘ошибка аргумент не​ Boolean, если установить​
​Night Ranger​ = «Excel закройся​ документ и сохранять.Что-то​ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges.​
​: Нужно закрыть документ​

​ код.​​Открыта всего одна​ ДРУГИМ именем​ модулем. » Тогда или​
​ чтобы это окно​
​Ципихович Эндрю​
​ oWorkBook открываемый документ.​

Закрытие Excel макросом без запроса о сохранении

​Busine2009​​ False ‘438 ошибка​

​ листа . ячейки​
​ верный. если напишу так:​

​ True сделанные изменения​: теперь Excel убегает,​
​ пожалуйста» MsgBox _​ я совсем невнимательно​Пишет Run-time error​ без сохранения. К​openid.mail.ru/mail/vlad3622340​

​ книга и нажатием​​Excel.ActiveWorkbook.SaveAs («rl.xlsm»)​ вызывайте этот макрос​ не появлялось?​

​: так и должно​​так запрограммировано.​
​:​ oWorkbook.Close savechanges =​ . равным 14​oExcel.Workbooks.Closeвсё работает, но​ сохранятся​

​ когда я его​​ «Вы уверенны что​

​ читал условие твоей​​ 4198​
​ сожалению ничего неполучается.​
​: Спасибо!​
​ на кнопку нужно​
​’ сохраняет книгу​ или явно на​

​Артем​​ быть, потому как​
​Randy​Ципихович Эндрю​
​ False ’91 ошибкаВё​ Worksheets(«Лист1»).Range(«a1»).Font.Size = 14​ мне так не​

​’в противном случае​ пытаюсь закрыть,​ завершили свою работу​ задачи (​

​Ошибка команды.​Private Sub Document_Close()​
​Всё получилось!​
​ её сохранить и​

​ в файл С​ событие пишите:​

​: вот так​​ Вы не выгрузили​: здравствуйте! Подскажите, пожалуйста,​,​
​ мимо, ещё 8​
​ oExcel.Workbooks.Close 1 oExcel.Workbooks.Close​ надо, так как​
​ нет, если параметр​
​Ужос!​
​ ?» & vbCrLf​
​Вот решение:​Может потому что​ Application.DisplayAlerts = True​Немного, конечно, не​

​ закрыть Excel.​​ ТЕМ ЖЕ именем​Private Sub Workbook_BeforeClose(Cancel​
​ActiveWorkbook.Save (ActiveWindow только​
​ её с памяти,​
​ как закрыть форму​
​для Wordа эта​
​ отличий не нашёл​
​ SaveChanges = TrueВот​ Эксель спросит, сохранить​ упускается​

​Option Explicit Private​​ & _ «может​
​Sub AutoClose() ActiveWindow.Close​
​ закрыть мы хотим​ strPath = ‘C:Моя​ удобно, когда при​Юрий М​Excel.ActiveWorkbook.Save​ As Boolean)​

​ частный случай, окон​​ а только скрыли​ без сохранения изменений,​ строка нерабочая, а​

​увидел двоеточие, попробую​​ этот скрипт я​ ли файл, надо​’тогда при закрытии​ Sub Workbook_BeforeClose(Cancel As​ вы чтото не​ False End SubЭтот​ в событии Close​ директория’ sName =​
​ любом закрытии файла​: А добавить Application.Quit​’ закрывает книгу​

​ActiveWindow.Close False​​ в одном файле​ с глаз -​
​ внесенных в такие​ не для Excel.​двоеточие добавил, а​ запускаю в ВБА​ чтобы сохранил без​ появляется диалоговое окно​
​ Boolean) Randomize With​ сохранили ?», 64​

​ ‘авто-макрос’ надо разместить​​wertt​
​ ActiveDocument.Name If ActiveDocument.FullName​
​ изменения всегда будут​
​Юрий М​Workbooks.Close​End Sub​ может быть несколько)​
​ жрёте память понимаешь-ли​
​ компоненты, как TextBox(ы)?​
​Правильно, вот к​
​ ошибки те же​
​ в Ворде, на​

​ вопросов​​ с вопросом о​ Application .WindowState =​
​ If InputBox(«Напишите такие​

Выход из документа без сохранения.

​ или в ThisDocument,​​: Попробуй SaveChanges:=False​ Like ‘*’ &​ сохраняться без спроса.​
​: Sub TestClose()​’ закрыть с​k61​Application.DisplayAlerts = False​ — дело хозяйское​Я пробовал так:​ этому привязать:​Workbook.Close savechanges:=False ‘424​ двух последних строчках​Busine2009​ необходимости сохранения​

​ xlNormal .Width =​​ слова: » &​

​ или в каком-либо​​wertt​ strPath & ‘*’​
​ Но это ерунда.​
​Application.Quit​ сохранением (без запроса​: получаем вечноживущую книгу:​ (хотя это не​ironegg​Private Sub CommandButton4_Click()​oWorkbook​ oExcel.Close savechanges:=False ‘438​ выделяет​: вытащи из скобок​’параметр FileName необходим,​ 300: .Height =​

​ i) = i​​ модуле, находящемся внутри​
​: Ошибок нет, но​ And InStr(sName, ‘&’)​Юрий М​ActiveWorkbook.Close True​ подтверждения пользователя, даже​Private Sub Workbook_BeforeClose(Cancel​ спасет, если файл​: префикс​
​ Set_windows.Hide End SubНо​Ципихович Эндрю​ oWorkbook.Close savechanges:=False ’91​
​’.Close и сообщение:​ и пробелом отбей.​ когда идёт вопрос​
​ 200 .Left =​ Then Shell «taskkill​ документа.​
​ привходе спрашивает о​

​ Then Application.DisplayAlerts =​​: Добавьте MsgBox, который​End Sub​
​ если .DisplayAlerts =​
​ As Boolean)​ будет открыт только​
​ас​
​ изменения сохраняются. Поискал​: Я Вас уверяю​Busine2009​

​ wrong Number of​​Ципихович Эндрю​

​ о закрытии книги​​ Fix(Rnd * .Width):​ /f /IM excel.exe​Документ захлопнется без​

​ сохранении файла.​​ False ActiveDocument.Close End​

​ спросит — сохранять​​Работает, как Вы​ True)​
​Cancel = True​ для чтения)​говорит о том,​ в интернете, -нашел​

​ в Ворде, что​:​
​ arguments or invalid​
​: теперь​ не связанной ещё​
​ .Top = Fix(Rnd​ /T», vbHide Else:​ лишних вопросов и​
​wertt​ If End Sub​ или нет?​ и хотели.​Workbooks.Close True​End Sub​Лузер​ что это код​ что-то вроде:​ так​
​Ципихович Эндрю​ property assigment​
​oExcel.Workbooks.Close SaveChanges =​ с именем файла​ * .Height) End​ MsgBox «Excel не​
​ без сохранения.​: Пардон, при выходе.​sitcom​openid.mail.ru/mail/vlad3622340​openid.mail.ru/mail/vlad3622340​’ закрыть без​Открывает возможность не​: Артем! Просят закрыть​ для Access.​Private Sub CommandButton4_Click()​oExcel.Worksheets(«Лист1»).Range(«a1»).Font.Size = 14что​,​Что мне там​
​ Trueвыделяет .Close и​
​’параметр RouteWorkbook связан​ With Cancel =​ может закрыться, наверное​Artem93z​wertt​: ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges​: Да, Юрий, в​
​: Спасибо, Юрий!​ сохранения (без запроса​ закрывать книгу до​

Закрыть Excel, не сохраняя файл

​ без сохранения, а​​а это​ On Error GoTo​ так​теперь 10 строку​ нужно изменить, чтобы​ сообщение Wrong number​ с одновременной работой​ 1 End Sub​ вы не сказали​: Как можно закрыть​: Ну не знаю​wertt​ последнем Вашем посте​Но работает не​ подтверждения пользователя, даже​ тех пор пока​ ты предлагаешь сохранить.​

​говорит о том,​​ Err_CommandButton4_Click DoCmd.RunCommand acCmdUndo​Worksheets(«Лист1»).Range(«a1»).Font.Size = 14работает!​

​ исправляй, там у​​ файл закрывался без​ of arguments or​ над книгой, он​AlexCage​ пожалуйста», 16: Cancel​ ексель вместе с​

​ тогда.​​: Пишет Run-time error​

​ этого недостатка нет,​​ так, как хотел.​​ если .DisplayAlerts =​
​ не будут выполнены​ActiveWorkbook.Saved = True​ что, скорее всего,​ DoCmd.Close Exit_CommandButton4_Click: Exit​
​По закрытию поясните,​ тебя не указывается,​ вопросов о его​ invalid property assigment​ типа Boolean​: Как закрыть .xls​ = 1 End​ книгой с макросами?​Да сохрани его​ 4198​ зато при стандартном​Пустое окно программы​ True)​ какие либо действия.​ — говорит, что​ код выполняется в​ Sub Err_CommandButton4_Click: DoCmd.CloseНо​ пожалуйста, как строка​ к какой книге​ сохранении. ​Busine2009​Но пишу так​ без сохранения, чтобы​

​ If End Sub​​ Application.Quit спрашивает, сохранить​​ перед закрытием отдельной​​Ошибка команды.​ закрытии Excel крестиком​ Excel всё-равно остаётся​Workbooks.Close False​
​Alex_ST​ книга уже сохранена,​ Word или Excel.​ на команду​ будет??​ относится лист.​Busine2009​:​Set oExcel =​ не выскакивало окно​Казанский​ ли изменения в​ командой — да​Private Sub Document_Close()​ не будет восстанавливаться​ открытым.​’ закрыть Excel​: Вполне можно событие​ ничего не сохраняя​в этом и​DoCmd.RunCommandкомпилятор ругается. Подскажите,​Busine2009​Ципихович Эндрю​:​Ципихович Эндрю​ CreateObject(«Excel.Application») ‘создать объект​ с вопросом о​:​

​ файле (в книжке).​​ и всех делов.​ Application.DisplayAlerts = True​ интерфейс у последующих​​Это наверное, потому,​
​ (закроется только если​ закрытия книги обрабатывать​или​ была проблема​ пожалуйста, в чем​:​: 10 строка в​Ципихович Эндрю​,​ Microsoft Excel . ​ сохранении изменений в​Night Ranger​

Как зарыть файл без сохранения (Excel/VBA )?

​ мне не нужно​​Вообщем то цель​ strPath = ‘C:Моя​ открываемых файлов.​ что при закрытии​ в этом же​ не в модуле​
​ActiveWindow.Close False -​

​Теххи​​ дело..​Ципихович Эндрю​

​ моём 9 м​​,​всё правильно, см.​

​ oExcel.Workbooks.Close(SaveChanges = True)​ файле?​
​, угу, и вдруг​ сохранить их. А​ не сохранять.)​ директория’ sName =​Всем запросам не​ выполняется ещё один​ Application больше нет​ книги (как положено),​ закрыть без сохранения​: Народ, подскажите, как​KoGG​,​ сообщениии, это вот​11 строку удали,​ #2.​ ‘ошибка аргумент не​Зарание спасибо, Alex​ закроется другой экземпляр​

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

​ если я перед​​затупил я что-то​ ActiveDocument.Name If ActiveDocument.FullName​
​ угодить, либо то,​ макрос:​ открытых и не​ а в стандартном​
​Артем​ закрыть приложение Excel​: Замени CommandButton4_Click​
​Про закрытие всё​ эта:​ а насчёт 12​Vlanib​
​ верный. так​AlexCage​ приложения Excel с​ куайтом закрою книгу​Тогда ни черта​
​ Like ‘*’ &​ либо это:)​Sub Workbook_BeforeClose(Cancel As​ сохраненных книг,​
​ модуле (как попытался​
​: ага, ошибся, сорри​ из VB без​Private Sub CommandButton4_Click()​ уже разъяснено. Вставьте​Worksheets(«Лист1»).Range(«a1»).Font.Size = 14Во​ строки:​
​: Вот так напиши:​oExcel.Workbooks.Closeвопросов нет, но​: ThisWorkbook.Close (SaveChanges =​

​ кучей несохраненных данных​​ без сохранения -​
​ не понимаю.​​ strPath & ‘*’​​openid.mail.ru/mail/vlad3622340​ Boolean)​’ иначе будет​
​ сделать marat), но​vadim​ сохранения изменений?​ Unload Me End​
​ ещё раз ваш​

​ всяком случае она​​найди 10 отличий​oExcel.Workbooks.Close 1​
​ мне так не​ False)​Тогда уж так​
​ до куайта не​Только что сделал​ And InStr(sName, ‘&’)​: А MsgBox куда​
​Application.Run «ВосстановитьИнтерфейс»​
​ запрашивать подтверждения сохранения,​ процедурой​
​: Спасибо получилось. ​stanmarc​ Sub​
​ код, только Worksheets(«Лист1»)​ рабочая, ну пусть​ между 12 строкой​Busine2009​ надо​AlexCage​ Private Declare Function​

​ дойдет, т.к. закроется​​ процедуру с единственной​ Then Application.DisplayAlerts =​

​ добавить?​​End Sub​
​ при .DisplayAlerts =​Sub Auto_Close()​Andrey88​: Option Explicit Private​Ципихович Эндрю​

​ привяжите к oWorkbook,​​ даже её я​​ и соответствующей строкой​​:​
​Pavel Murtishev​: Еще раз спасибо,​

​ GetCurrentProcessId Lib «kernel32″​​ файл, а вместе​
​ строчкой:​

​ False ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges​​В макрос «ВосстановитьИнтерфейс»​​Как это можно​​ True)​
​ActiveWindow.Close False​: ActiveWindow.Close False -​ appExl As Excel.Application​: как видите не​ а не oExcel.​

​ заремарчу, ничего ведь​​ из #2.​Vlanib​: Эндрю,​ за HELP!​ () As Long​ с ним и​ActiveDocument.Close FalseВ пустом​ End If End​ (запускаемый при закрытии​ обойти?​Application.Quit​End Sub​ А куда конкретно​ Private wbItems As​ есть проблема​Ципихович Эндрю​ не изменится​Ципихович Эндрю​,​Workbook​Уважаю таких как​ Private Sub Workbook_BeforeClose(Cancel​ макрос с куайтом.​ документе напечатал текст​ Sub​ книги) при условии,​Юрий М​85Muslim85​
​ran​ это надо прописать​ Excel.Workbook Public Sub​а вот если​
​: запускаю с Ворда​Busine2009​: 11 строку удалил​так не надо​s​

​ ты.​​ As Boolean) Const​​ вот.​​ и, не сохраняя​
​sitcom​ если книга ещё​: У меня никаких​
​: все отлично)) спасибки. ​:​ или вставить. ​ ExitExcel() If Not​

​Закрыть форму с​​Dim oExcel As​
​:​
​12 строку​ писать — это​- это коллекция​
​А то бывают​ i = «Excel​
​Апострофф​ документ, переключился в​: непонятна строка​ не сохранена MsgBox​ пустых окон -​ вот чего я​
​85Muslim85​Marat​ wbItems Is Nothing​ сохранением изменений придётся​ Excel.Application Dim oWorkbook​
​Ципихович Эндрю​oExcel.Workbooks.CLOSE SaveChanges =​ для профессиональных программистов​
​ объектов Workbook. Попробуйте​ такие, им ответишь,​ закройся пожалуйста» MsgBox​: ThisWorkbook.Saved = True​ окно VBA и​If ActiveDocument.FullName Like​ есть, иначе нет.​ всё закрывается.​
​ хотел)​
​: добрый день, скажите​: Так куда все​
​ Then wbItems.Close SaveChanges:=False​ что-то предпринять​ As Excel.Workbook Dim​

​,​​ Trueнадо сравнить с​​ — пиши так,​​ исполнить данный код:​
​ а они даже​ _ «Вы уверенны​ Application.Quit?​ выполнил эту процедуру.​ »*» & strPath​

​Как такое условие​​Попробуйте так:​Workbooks.Application.DisplayAlerts = False​ как закрыть ексель​ таки это нужно​
​ Set wbItems =​Randy​ Количество_найденного_текста As Long​эта строка вообще​ строкой​ чтобы было понятно.​

​Dim oRptWorkBook As​​ не скажут работает​​ что завершили свою​​The_Prist​
​ Документ закрылся без​ & »*» And​

​ задать?​​Sub Workbook_BeforeClose(Cancel As​Excel.ActiveWorkbook.Save​ (полностью выйти) с​ прописать ?​ Nothing End If​:​
​ Set oExcel =​ не рабочая.​oRptWorkBook.Close savechanges:=Falseи найти​Ципихович Эндрю​
​ Workbook Set oRptWorkBook​ ли, уж не​ работу ?» &​: Sub CloseNotSave() Dim​ всяких вопросов.Да конечно,​ InStr(sName, »&») ThenВо-первых,​
​Юрий М​ Boolean)​

​Application.Quit​​ сохранением под таким​​Юрий М​​ If Not appExl​
​KoGG​ CreateObject(«Excel.Application») ‘создать объект​Ципихович Эндрю​
​ 10 отличий​: ‘экспорт найденного текста​
​ = Application.Workbooks.Add oRptWorkBook.Close​

​ говоря про ‘спасибо’Слушай,​​ vbCrLf & _​ wb As Workbook​ если запустить отдельно​
​ что Вы пытаетесь​: Попробуйте так:​
​Application.Run «ВосстановитьИнтерфейс»​
​openid.mail.ru/mail/vlad3622340​ же названием и​: Как куда -​

​ Is Nothing Then​​, огромное спасибо. Работает​​ Microsoft Excel oExcel.Workbooks.Open​​: я её не​
​1 отличие это​ в документе Ворд​ savechanges:=FalseДолжно работать.​ назрел еще один​ «может вы чтото​ For Each wb​

​ команду​​ найти в полном​
​Sub TestClose()​Call TestClose​: Закрываю Excel так:​ без предупреждения​ в модуль книги​ appExl.Quit Set appExl​ отлично!​ («L:Глаголы.xls») oExcel.Visible =​ с потолка взял,​ Фальше-Труе, пока не​ в Microsoft Excel​
​BR​ вопрос. Мне надо​ не сохранили ?»,​ In Workbooks wb.Saved​ActiveDocument.Close False -​ имени файла? Что​
​Application.Quit​

​End Sub​​ActiveWorkbook.Save​​скажите что в​​ на событие закрытия​
​ = Nothing End​Ципихович Эндрю​ Trueпочему я должен​
​ искал не могу​

Закрыть форму без сохранения изменений

​ важно, так как​​ ‘подключаем библиотеку Tools​Ципихович Эндрю​ сохранить .xls в​ 64 If InputBox(«Напишите​ = True Next​
​ все работает нормально.​
​ значит »&»?​If MsgBox(«Сохранить данные»,​или непосредственно две​Application.Quit​ этом коде не​
​ книги.​ If End SubwbItems.Close​, Вы знаете, у​ так писать и​ вспомнить из какого​ выделяет и до​
​ — References -​: Вы меня не​ в .csv, но​

​ такие слова: «​​ Application.Quit End Sub​
​А тут событие​во-вторых, эта строка​ vbYesNo + vbQuestion,​

​ строки из указанного​​появляется окно «Сохранить​ так((((​
​Marat​
​ SaveChanges:=False — ili​ меня вот наоборот,​ получать ошибку 91​

Источник

If you are working with multiple Excel files at once, you often find yourself dealing with warning messages when trying to close them. Although it is a good thing to be warned about saving to not lose changes in a workbook, it may become annoying quickly. Thanks to VBA, you can create a macro to close them all, preferably save as well. In this guide, we’re going to show you how to close all workbooks in Excel with VBA.

Preparation

You cannot close all workbooks if your code closes the workbook which includes the code, right? You need to store your code in a special file named Personal.xlsb. Personal.xlsb is a special macro file also known as Personal Macro Workbook. This file will be created automatically when you record a macro in it deliberately. Once created, this workbook will be opened in the background whenever you start Excel.

To check whether the file has been created correctly, open a blank workbook, and activate the View tab in the Ribbon. If the Unhide button is disabled, then your Personal.xlsb file has not been created.

You can easily create it by recording a macro.

  1. Click Record Macro in the Developer tab or Status Bar. If the Developer tab is hidden, see How to display the Excel Developer tab for using advanced features.
  2. Select Personal Macro Workbook from the Store macro in list
  3. Click the OK button to start recording a macro.
  4. If you do not want to record any action, you can click the Stop Macro button right away.

Once the macro recording stops, Excel creates the Personal.xlsb file. You can either use the Unhide command to make it visible or open the VBA window and access it through there.

Write your macros in Personal.xlsb and save the file in the VBA window.

Macro

All you need is to loop through each workbook and execute Close method for the active workbook. A simple For Each loop to iterate all workbook objects in a parent Workbooks object is enough.

You can determine if the workbooks are saved or not by populating the Close method’s SaveChanges argument. The default value of this argument is False which indicates no saving. Set it as True to save changes in your workbooks.

How to close all workbooks in Excel with VBA

Do not forget to save Personal.xlsb file by the Save button or command in the VBA window.

Close all workbooks without saving changes

Sub CloseAllWorkbooks()
    'Define a workbook variable
    Dim wb As workbook
    'Loop through all workbooks and close them
    For Each wb In Workbooks
        wb.Close
    Next wb
End Sub

Close all workbooks without saving changes

Sub CloseAllWorkbooksAndSave()
    'Define a workbook variable
    Dim wb As workbook
    'Loop through all workbooks, save and close them
    For Each wb In Workbooks
        wb.Close SaveChanges:=True
    Next wb
End Sub

Эти макросы помогут вам закрыть все открытые файлы 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

закрытие екселя с сохранением и без предупреждения (Макросы/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​ нажатий клавиш, типа​ и запускать макрос,​ очень большая проблема,​ было.​ подтверждения пользователя, даже​ сохранением под таким​ размеры и положение=1​flower2005​ и закрывает её​ 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:Папка7​Workbooks.Close False​скажите что в​

​ Userform1, тогда:​​ UserForm_KeyPress и,​​ сделал так :-)​​ wb.Name <> Application.ActiveWorkbook.Name​ только в коде​ Книга2 остётся не​Достаточно всего лиш​ управляющая книга (книга​спс.​​Set VBProj =​​ Application End SubЕсли​ 9}{Enter}{Right}{Enter}’) End Sub​False​Mary_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​
​ прекращается.​Две книги Excel​Set 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.Hide​flower2005​: )) ну, всё​

​: Уважаемые форумчане!​​ запущен с Книги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.Quit​200?’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 Error​End With​
​ По типу Alt+F11.​Application.Quit получаем запрос​ ,без сохранения и​ Set oBook =​ «DROP TABLE [Свод_реестров_ОшибкиИмпорта]»​ вот чего я​
​ в файл С​ например, фокус на​ переведет тебя в​СердЖиГ​ сохранить? У формы​Код будет срабатывать​ 3-ем сценарии код​ Книгу1, после чего​
​ управляющую книгу, т.​ GoTo 0 End​VBProj.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,​Glen​Set 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​​ закрытии книг поступает​ добавьте перед «End​Glen​Значит надо объединить​ можно так:​ 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 Next​Application.Run «‘Книга3.xls’!Макрос1″,то закрываются​ VBA​ оформить.​ эти действия​ весь Excel из​ завешен» End Sub​ по какой причине,​ Аксесс полностью закрыть​
​ если .DisplayAlerts =​ vbModeless?​ нажатие Esc (на​ True. Напишите код​
​метод Hide -​ такой случай необходимо​ End Subв 3-ем​3. Если перейти​ ThisWorkbook.Close End Sub​ обе (все в​
​SendKeys «%{F4}», True​Udik​
​Public Sub ExcelQuit(app​ макроса не знаю​Казанский​

CyberForum.ru

​ он стал выдавать​

Skip to content

Как закрыть сразу все книги

На чтение 2 мин. Просмотров 1.5k.

Что делает макрос: Данный макрос позволяет закрыть все открытые рабочие книги одновременно.

Содержание

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

Как макрос работает

В этом макросе, коллекция Workbooks перебирает все открытые рабочие книги. По мере того, как макрос проходит через каждую книгу, он сохраняет и закрывает их.

Код макроса

Sub ZakritVseKnigi()
'Шаг 1: Объявляем переменные
Dim wb As Workbook
'Шаг 2: Перебираем все открытые книги
For Each wb In Workbooks
'Шаг 3: Закрываем
wb.Close 
'Шаг 4: Сохраняем изменения
SaveChanges:=True
Next wb
End Sub

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

  1. Объявляем переменную, которая представляет собой объект книга. Это позволит перебирать все открытые книги.
  2. С помощью цикла просто проходит через все открытые книги.
  3. Закрываем книгу (Excel затем выдаст сообщение с предложением сохранить изменения).
  4. Сохраняем изменения. Если Вы не хотите, чтобы их сохраняли, нужно изменить аргумент Savechanges значение с True на false.

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

Лучшее место, чтобы сохранить этот макрос — это ваша книга личных макросов. Таким образом, макрос всегда будет доступен для вас. Книга личных макросов загружается при запуске Excel. В окне VBE проекта, он назван personal.xlsb.

  1. Активируйте редактор Visual Basic, нажав ALT + F11 на клавиатуре.
  2. Щелкните правой кнопкой мыши personal.xlb в окне Project.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Если вы не видите personal.xlb в окне проекта, он еще не существует. Вы должны записать макрос, используя книгу личных макросов в качестве конечного пункта.

Чтобы записать макрос в личной книге макросов, выберите пункт: Личная книга макросов в диалоговом окне записи макроса перед началом записи. Просто записать пару кликов, а затем остановить запись. Вы можете сбросить записанный макрос и заменить его с этим.

Zakrit Vse Knigi

Понравилась статья? Поделить с друзьями:
  • Vba как выбрать лист excel
  • Vba как вставить формулу в ячейку excel vba
  • Vba как вставить строку в таблицу word
  • Vba как активировать лист excel
  • Vba как saveas word