ti-enxame.com

Fechando o Aplicativo do Excel usando o VBA

Eu usei o seguinte sem sucesso. A pasta de trabalho ativa é fechada, mas a janela do Excel permanece aberta.

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

Qual é o comando que finaliza o aplicativo?

EDITAR

Para dizer um pouco mais: Na pasta de trabalho Abrir evento, eu corro uma macro. Eu quero finalizar o aplicativo quando essa macro terminar. Eu também tentei isso sem sucesso.

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub

Onde devo colocar este comando Application.Quit?

29
Brani

Eu acho que o seu problema é que ele está fechando o documento que chama a macro antes de enviar o comando para sair do aplicativo.

Sua solução nesse caso é não enviar um comando para fechar a pasta de trabalho. Em vez disso, você pode definir o estado "Salvo" da pasta de trabalho como true, o que contornaria qualquer mensagem sobre o fechamento de um livro não salvo. Nota: isso não salva a pasta de trabalho; isso apenas faz parecer que está salvo.

ThisWorkbook.Saved = True

e depois, logo depois

Application.Quit
48
variant

Para evitar a mensagem Salvar Prompt, você precisa inserir essas linhas

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

Depois de salvar seu trabalho, você precisa usar esta linha para sair do aplicativo Excel

Application.Quit

Não basta simplesmente colocar essa linha em Private Sub Workbook_Open () a menos que você tenha feito uma verificação correta da condição, senão você pode estragar seu arquivo do Excel. 

Por motivos de segurança, por favor, crie um módulo para executá-lo. A seguir estão os códigos que eu coloquei:

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

Espero que ajude você a resolver o problema.

7
Leng Keong
Application.Quit 

Deve fazer o truque.

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

Isso parece funcionar para mim, mesmo que parece que estou parando app antes de salvar, mas salva ... 

3
kc kalama

Eu tentei uma certa sequência que parece funcionar como você pode ver abaixo:

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

No meu caso, eu precisava fechar apenas uma janela do Excel e não o aplicativo inteiro, então, eu precisava dizer qual janela exata fechar, sem salvá-la.

As linhas a seguir funcionam bem:

Windows("filename.xlsx").Activate
ActiveWorkbook.Close SaveChanges:=False
0