FINALIZAR PROCESSO EM SEGUNDO PLANO
Em VB 5/6 utilizo a exportação de dados do VB para Excel.
Dim objXLApp As New Excel.Application
Dim objXLWkb As New Excel.Workbook
Dim objXLWks As New Excel.Worksheet
Set objXLWkb = objXLApp.Workbooks.Add
Set objXLWks = objXLWkb.Sheets(1)
Ocorre tudo certo. Porém ao exportar novamente, ocorre automation error, etc. Observo que o Excel fica rodando em segundo plano. Quando saio da aplicação VB, este processo é finalizado.
Tem alguma forma de finalizar este processo em segundo plano após eu exportar minha planilha do VB para Excel, sem precisar sair do meu sistema em VB ?
Dim objXLApp As New Excel.Application
Dim objXLWkb As New Excel.Workbook
Dim objXLWks As New Excel.Worksheet
Set objXLWkb = objXLApp.Workbooks.Add
Set objXLWks = objXLWkb.Sheets(1)
Ocorre tudo certo. Porém ao exportar novamente, ocorre automation error, etc. Observo que o Excel fica rodando em segundo plano. Quando saio da aplicação VB, este processo é finalizado.
Tem alguma forma de finalizar este processo em segundo plano após eu exportar minha planilha do VB para Excel, sem precisar sair do meu sistema em VB ?
Depois da exportação, você está [Ô]matando[Ô] os objetos do excel e da planilha?
Todos os objetos instanciados devem ser purgados.
Set objxxxx = Nothing
Todos os objetos instanciados devem ser purgados.
como você fecha a planilha?
Citação::
Depois da exportação, você está [Ô]matando[Ô] os objetos do excel e da planilha?
Set objxxxx = Nothing
Todos os objetos instanciados devem ser purgados.
Sim, já fazia o nothing de todos os objetos instanciados.
Set objXLApp = Nothing
Set objXLWkb = Nothing
Set objXLWks = Nothing
objXLWkb.Close
Shell [Ô]TASKKILL /F /IM Excel.exe[Ô]
Porém não surtiu efeito
inclui mais esta linha
objXLApp.Quit
objXLApp.Quit
Citação::
inclui mais esta linha
objXLApp.Quit
Ok Marcelo.
Também já havia inserido esta linha, onde fecha a planilha excel aberta.
Fecha o excel do Primeiro Plano, mas fica aberto o Segundo Plano.
vamos lá então
outro modo de fechar
Set objXLApp = Nothing
Set objXLWkb = Nothing
Set objXLWks = Nothing
[txt-color=#e80000]objXLWkb.Close Savechanges:=False [/txt-color]
tenta ai
outro modo de fechar
Set objXLApp = Nothing
Set objXLWkb = Nothing
Set objXLWks = Nothing
[txt-color=#e80000]objXLWkb.Close Savechanges:=False [/txt-color]
tenta ai
Citação::
vamos lá então
outro modo de fechar
Set objXLApp = Nothing
Set objXLWkb = Nothing
Set objXLWks = Nothing
[txt-color=#e80000]objXLWkb.Close Savechanges:=False [/txt-color]
tenta ai
run time error 50290 (aplication-defined or object-defined error)
desculpe é assim
objXLWkb.Close False
objXLWkb.Close False
eu consegui matar a instancia assim
objXLWkb.Close False
Set objXLApp = Nothing
Set objXLWkb = Nothing
Set objXLWks = Nothing
objXLWkb.Close False
Set objXLApp = Nothing
Set objXLWkb = Nothing
Set objXLWks = Nothing
Citação::
desculpe é assim
objXLWkb.Close False
Marcelo
Citação::
eu consegui matar a instancia assim
objXLWkb.Close False
Set objXLApp = Nothing
Set objXLWkb = Nothing
Set objXLWks = Nothing
Fiz o procedimento, mas ocorre erro automation novamente.
De qualquer forma, fiz uma outra opção que está me atendendo, ou seja, não usar mais a referência Excel e sim a geração de um arquivo CSV gerando um arquivo For Append #1 com [Ô];[Ô] para separar os campos. Desta forma consigo abrir o arquivo gerado (CSV).
Grato pela ajuda.
Abraço.
Tópico encerrado , respostas não são mais permitidas