2014-11-21 4 views
-1

Я сделал кнопку (не кнопка activeX) и назначил макрос, который закодирован, чтобы убить задачу EXCEL.EXE. При активации он дает сообщение об ошибке, в котором говорится, что он не может закрыться. Можно ли даже убить задачу excel через excel?Попытка закрыть Excel через макрос Excel?

Вот мой код. Я уверен, что это работает.

Dim oShell : Set oShell = CreateObject("WScript.Shell") 
intAnswer = _ 
MsgBox("Do you want to close Excel?", _ 
    vbYesNo, "Prompt") 

If intAnswer = vbYes Then 
    MsgBox "Excel will close." 

Else 
    MsgBox "Excel will remain open." 
End If 

oShell.Run "taskkill /im EXCEL.EXE", , True 
+3

Что случилось с 'Application.Quit'? –

+0

@SO как мне это использовать? – Rocketboy721

+0

@ Rocketboy721 использование taskkill из-за границы превосходит, в то время как внутри excel использовать 'Application.Quit' как S O предлагается). Во всяком случае, кнопка ActiveX не так уж плоха! – ZAT

ответ

1

Используйте Application.Quit метод:

intAnswer = _ 
MsgBox("Do you want to close Excel?", _ 
    vbYesNo, "Prompt") 

If intAnswer = vbYes Then 
    MsgBox "Excel will close." 
    Application.Quit 

Else 
    MsgBox "Excel will remain open." 
End If 

Рассмотрим использование, а

ThisWorkbook.Save 

если вы хотите сохранить свою работу перед закрытием приложения. Вы можете узнать больше об объекте приложения here.

+0

Большое спасибо – Rocketboy721

+0

@ Rocketboy721, если он работает, не забудьте принять ответ, чтобы другие пользователи с той же проблемой знали, где искать;) –

1

Может быть, попробуйте добавить этот фронт вверх:

Application.DisplayAlerts=False 
ThisWorkbook.Save 
Смежные вопросы