MATAR PROCESSO
Caros, boa tarde
Estou escrevendo um pequeno codigo para gerar uma planilha em excel e nesse codigo ele permite que eu gere varias planilhas, uma de cada vez, porem, quando vou gerar a segunda planilha ele da um pau muito doido que nao sei explicar... acho que eh pq o processo do excel nao esta sendo morto e estou usando o comando para fecha-lo.
entao, pq dessa historia? estou precisando de um codigo que elimine o processo do excel (pelo nome) da lista de processos ativos... tem um aki no vbmania mas o esta com defeito na hora de baixar...
alguem pode ajudar?
abracos
Estou escrevendo um pequeno codigo para gerar uma planilha em excel e nesse codigo ele permite que eu gere varias planilhas, uma de cada vez, porem, quando vou gerar a segunda planilha ele da um pau muito doido que nao sei explicar... acho que eh pq o processo do excel nao esta sendo morto e estou usando o comando para fecha-lo.
entao, pq dessa historia? estou precisando de um codigo que elimine o processo do excel (pelo nome) da lista de processos ativos... tem um aki no vbmania mas o esta com defeito na hora de baixar...
alguem pode ajudar?
abracos
não entendi direito a duvida... explica melhor ai o problema...
flw
abraço
flw
abraço
Citação:XlsBook.Application.Quit
Nunca esqueça de fechar o tópico quando sua duvida estiver resolvida
po velho, tentei essa saida porem nao funcionou.... ainda ficam mais de um processo do excel na memoria.
e tentando explicar melhor... tenho uma rotina que le um banco de dados access e gera um excel porem, quando preciso gerar duas planilhas sem fechar a aplicação, a segunda planilha vem vazia...
acredito que seja por conta dos dois processos que ficam na memoria...
vlw
Olha,
Geralmente eu utilizo essa rotina para criar uma nova instância do Excel
Dim EXCELAPP As Excel.Application
Dim EXCELPASTA As New Excel.Workbook
Dim EXCELPLAN As New Excel.Worksheet
Set EXCELAPP = New Excel.Application
Set EXCELPASTA = EXCELAPP.Workbooks.Add
Set EXCELPLAN = EXCELPASTA.Sheets(1)
Quando eu preciso de uma nova planilha dentro dessa pasta criada eu crio um novo objeto da planilha o que seria
Dim EXCELPLAN_1 As New Excel.Worksheet
Set EXCELPLAN_1 = EXCELPASTA.Sheets(2)
Porém, quando eu preciso lançar os dados na segunda planilha eu uso ativar a planilha antes de escrever o que preciso nela, tipo:
EXCELPLAN_1.Activate
Agora, eu já tentei alguns códigos para descarregar o excel completamente da memória e não consegui, porém o que percebi é que
mesmo com uma instância aberta não gera erros em novas chamadas.
Então utilizo o seguinte código para descarregar a variável
Set EXCELAPP = NOTHING
é isso,
Espero ter ajudado.
Geralmente eu utilizo essa rotina para criar uma nova instância do Excel
Dim EXCELAPP As Excel.Application
Dim EXCELPASTA As New Excel.Workbook
Dim EXCELPLAN As New Excel.Worksheet
Set EXCELAPP = New Excel.Application
Set EXCELPASTA = EXCELAPP.Workbooks.Add
Set EXCELPLAN = EXCELPASTA.Sheets(1)
Quando eu preciso de uma nova planilha dentro dessa pasta criada eu crio um novo objeto da planilha o que seria
Dim EXCELPLAN_1 As New Excel.Worksheet
Set EXCELPLAN_1 = EXCELPASTA.Sheets(2)
Porém, quando eu preciso lançar os dados na segunda planilha eu uso ativar a planilha antes de escrever o que preciso nela, tipo:
EXCELPLAN_1.Activate
Agora, eu já tentei alguns códigos para descarregar o excel completamente da memória e não consegui, porém o que percebi é que
mesmo com uma instância aberta não gera erros em novas chamadas.
Então utilizo o seguinte código para descarregar a variável
Set EXCELAPP = NOTHING
é isso,
Espero ter ajudado.
Tópico encerrado , respostas não são mais permitidas