Vba как закрыть сам excel

I have used the following without success. The active workbook closes, indeed, but the excel window remains open.

Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False

Which is the command that terminates the application?

EDIT

To say a little more: In the workbook Open event I run a macro. I want to terminate the application when that macro finishes. I also tried this without success.

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub

Where should I put this Application.Quit command?

asked Sep 2, 2010 at 14:45

Brani's user avatar

BraniBrani

6,57415 gold badges46 silver badges49 bronze badges

I think your problem is that it’s closing the document that calls the macro before sending the command to quit the application.

Your solution in that case is to not send a command to close the workbook. Instead, you could set the «Saved» state of the workbook to true, which would circumvent any messages about closing an unsaved book. Note: this does not save the workbook; it just makes it look like it’s saved.

ThisWorkbook.Saved = True

and then, right after

Application.Quit

answered Sep 2, 2010 at 16:00

variant's user avatar

variantvariant

1,3442 gold badges11 silver badges18 bronze badges

To avoid the Save prompt message, you have to insert those lines

Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True

After saving your work, you need to use this line to quit the Excel application

Application.Quit

Don’t just simply put those line in Private Sub Workbook_Open() unless you got do a correct condition checking, else you may spoil your excel file.

For safety purpose, please create a module to run it. The following are the codes that i put:

Sub testSave()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub

Hope it help you solve the problem.

answered Apr 29, 2013 at 8:14

Leng Keong's user avatar

Leng KeongLeng Keong

1431 silver badge3 bronze badges

1

Sub TestSave()
Application.Quit
ThisWorkBook.Close SaveChanges = False
End Sub

This seems to work for me, Even though looks like am quitting app before saving, but it saves…

answered Jan 6, 2015 at 8:33

kc kalama's user avatar

kc kalamakc kalama

711 silver badge1 bronze badge

2

Application.Quit 

Should do the trick.

answered Sep 2, 2010 at 14:47

Michael's user avatar

MichaelMichael

1,6362 gold badges16 silver badges21 bronze badges

0

I tried a certain sequence that seems to work as you can see below:

ThisWorkbook.Saved = True
Application.Quit
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False

ForceMagic's user avatar

ForceMagic

6,15212 gold badges68 silver badges88 bronze badges

answered Jul 17, 2013 at 19:55

Dan's user avatar

You can try out

ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit

answered Mar 27, 2019 at 5:19

K10's user avatar

In my case, I needed to close just one excel window and not the entire application, so, I needed to tell which exact window to close, without saving it.

The following lines work just fine:

Sub test_t()
  Windows("yourfilename.xlsx").Activate
  ActiveWorkbook.Close SaveChanges:=False
End Sub

answered Jun 7, 2018 at 13:55

Panagiotis Chatzikonstantis's user avatar

Sub button2_click()
'
' Button2_Click Macro
'
' Keyboard Shortcut: Ctrl+Shift+Q
'
    ActiveSheet.Shapes("Button 2").Select
    Selection.Characters.Text = "Logout"
    ActiveSheet.Shapes("Button 2").Select
    Selection.OnAction = "Button2_Click"
    ActiveWorkbook.Saved = True
    ActiveWorkbook.Save
    Application.Quit
End Sub

LuigiEdlCarno's user avatar

answered Jul 26, 2013 at 7:07

Menon's user avatar

Содержание

  1. Метод Workbook.Close (Excel)
  2. Синтаксис
  3. Параметры
  4. Замечания
  5. Пример
  6. Поддержка и обратная связь
  7. Workbook.Close method (Excel)
  8. Syntax
  9. Parameters
  10. Remarks
  11. Example
  12. Support and feedback
  13. Vba excel как закрыть excel
  14. закрытие екселя с сохранением и без предупреждения (Макросы/Sub)
  15. VBA Access: как закрыть книгу Эксель без сохранения?
  16. Надо закрыть через VBA Excel ,без сохранения и без выскакивания запросов на сохранеие
  17. Закрыть окно редактора VBA макросом (Макросы/Sub)
  18. Как в одном макросе закрыть все книги Excel?
  19. VBA сохранить&закрыть userform
  20. VBA Excel закрытие формы на листе

Метод 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 и обратная связь.

Источник

Workbook.Close method (Excel)

Closes the object.

Syntax

expression.Close (SaveChanges, FileName, RouteWorkbook)

expression A variable that represents a Workbook object.

Parameters

Name Required/Optional Data type Description
SaveChanges Optional Variant If there are no changes to the workbook, this argument is ignored. If there are changes to the workbook and the workbook appears in other open windows, this argument is ignored. If there are changes to the workbook but the workbook doesn’t appear in any other open windows, this argument specifies whether changes should be saved. If set to True, changes are saved to the workbook.

If there is not yet a file name associated with the workbook, FileName is used. If FileName is omitted, the user is asked to supply a file name. FileName Optional Variant Saves changes under this file name. RouteWorkbook Optional Variant If the workbook doesn’t need to be routed to the next recipient (if it has no routing slip or has already been routed), this argument is ignored. Otherwise, Microsoft Excel routes the workbook according to the value of this parameter.

If set to True, the workbook is sent to the next recipient. If set to False, the workbook is not sent. If omitted, the user is asked whether the workbook should be sent.

Closing a workbook from Visual Basic doesn’t run any Auto_Close macros in the workbook. Use the RunAutoMacros method to run the Auto_Close macros.

Example

This example closes Book1.xls and discards any changes that have been made to it.

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Vba excel как закрыть excel

закрытие екселя с сохранением и без предупреждения (Макросы/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, то​

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 (‘Надо закрыть через 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​ цифру в 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​

Закрыть окно редактора 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»​

Как в одном макросе закрыть все книги 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​ ТЕМ ЖЕ именем​ — как это​ затем выгружай форму!​ форму при нажатии​’или так​Если код запускать​ срабатывания кода​

VBA сохранить&закрыть userform

​ с Книги3 в​​EducatedFool​

​ Книга3.​, здравствуйте. Я так​ ActiveWorkbook.VBProject​ работа макроса прекращается​

​ книг, если макрос​

​ FROM Свод_реестров» DoCmd.TransferSpreadsheet​​ уже после успешного​: Добрый день!​Excel.ActiveWorkbook.Save​

​ 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​ кнопки на форме​

VBA Excel закрытие формы на листе

​flower2005​​ памяти форму​ работу будет влиять​ For Each wb​
​ чего подать команду​

​ For Each wb​​ из Книги2, например​ sub»​: Код не покажу.​ эти команды: можно​Код Application.DisplayAlerts =​
​ CurrentDb.Execute «DROP TABLE​ эксель, мне выдавалось​ успехом, помогите пожалуйста!​’ закрыть с​

​ в кнопке?​​ — как и​: Разместите на форме​’или так​
​ порядок размещения открытых​ In Workbooks If​ о закрытии двух​ In Workbooks If​ так :​

Источник

 

CAHO

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

#1

07.07.2015 14:07:19

Здравствуйте друзья.
Каким образом можно закрыть текущую книгу вместе с приложением.
Просто закрыть книгу можно так:

Код
ThisWorkbook.Close

Таким образом удобно закрывать когда открыто несколько книг. А вот если открыта всего одна книга, то при закрытии остаётся открытым само приложение Excel. И его ещё раз приходится закрывать. Как же можно закрыть книгу вместе с приложение, если она одна?
Спасибо.

Прикрепленные файлы

  • Закрыть.xlsm (12.87 КБ)

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#2

07.07.2015 14:10:04

?

Код
Application.Quit                  

Согласие есть продукт при полном непротивлении сторон.

 

CAHO

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

Sanja

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

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#4

07.07.2015 14:16:50

Цитата
CAHO написал: Как же можно закрыть книгу вместе с приложение, ЕСЛИ ОНА ОДНА?
Цитата
ибо если открыто их НЕСКОЛЬКО, то он всё закрывает.

?

Изменено: Sanja07.07.2015 14:22:05

Согласие есть продукт при полном непротивлении сторон.

 

CAHO

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

#5

07.07.2015 14:24:12

И как закрыть книгу в таком случае без сохранения?

Код
ThisWorkbook.Close (False)

с application это не проканало

Цитата
…или лыжи не едут…

вообще не понял при чём тут лыжи.

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#6

07.07.2015 14:32:13

CAHO, вроде не первую сотню сообщений на сайте. В стартовом топике стоял вопрос

Цитата
Как же можно закрыть книгу вместе с приложение, если она одна?

сообщение #2 отвечает на него. Про то

Цитата
И как закрыть книгу в таком случае без сохранения?
Код
With Application
    .DisplayAlerts = False
    .Quit
End With

Согласие есть продукт при полном непротивлении сторон.

 

CAHO

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

Sanja

, спасибо. Разобрался. В файле (оригинале другом) ошибка была сделана и поэтому #6 сообщение у меня не работало. Поэтому и переспросил как сохранить без возможности сохранения.

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

#8

03.11.2022 14:29:44

Сенсеи подскажите чем можно излечить мою болячку?
Проблема в заполнении процессом EXCEL.EXE при каждом срабатывании скрипта в скаде.
Один раз скрипт отработал — один процесс EXCEL.EXE запустился, и т. д.
Вот такой код в скрипте, работа с екселем:

Код
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
objExcelApp.Workbooks.Open ""+path
Set objWorkSheet = objExcelApp.ActiveWorkbook.Worksheets(num_sheet)
Set objTag1= SmartTags(""+name_tag2)
objTag1.Value= objWorkSheet.Cells(num_row,num_colum).Value
objTag1.Write

objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objTag1= Nothing

А может можно в конце макроса или другим макросом закрывать этот процесс вот здесь C:Program FilesMicrosoft OfficerootOffice16EXCEL.EXE?

Прикрепленные файлы

  • дисп зад.jpg (64.8 КБ)

 

МатросНаЗебре

Пользователь

Сообщений: 5516
Регистрация: 05.02.2014

#9

03.11.2022 14:42:02

А если эту строку убрать?

Код
objExcelApp.Workbooks.Close

Цитата
написал:
А может можно в конце макроса или другим макросом закрывать этот процесс

Вот так можно закрыть все процессы. При желании, если знаете ID, то можно и конкретный процесс убрать.

Код
Shell "TASKKILL /F /im excel.exe", 0
 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

#10

04.11.2022 10:04:16

МатросНаЗебре, спасибо,

objExcelApp.Workbooks.Close  — убрал, не помогло.

Shell, TASKKILL, KILL — скада не знает таких команд, ругается.

А вот как узнать ИД процесса и удалить его это может помочь, но для этого вопроса скорее всего нужна отдельная тема, я такую не нашёл.

закрытие екселя с сохранением и без предупреждения (Макросы/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

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

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 как добавить строки в таблицу word
  • Vba как вывести значения в лист excel
  • Vba как выбрать лист excel
  • Vba как вставить формулу в ячейку excel vba