Programación General => Visual Basic 6.0 e inferiores => VBA => Mensaje iniciado por: jpardo84 en Martes 5 de Agosto de 2008, 17:04
Título: Cerrar Instancia de Excel.Application
Publicado por: jpardo84 en Martes 5 de Agosto de 2008, 17:04
Hola espero este bien... Tengo un procedimiento en Acces que abre un archivo de Excel
'----------------------------------- Private Sub Comando13_Click() On Error GoTo Errores
Dim Ap As Object Dim Wb As Object
Set Ap = CreateObject("Excel.Application") Set Wb = Ap.workbooks.Open(txtArchivo) ' el texto con la ruta del archivo
Fin = Range("A65000").End(xlUp).Row
For N = 1 To Fin 'procesos Next
Wb.Close SaveChanges:=False Ap.Quit
Set Wb = Nothing Set Ap = Nothing
MsgBox "El proceso de carga se terminó correctamente." & vbCrLf & Cadena, vbInformation
Exit Sub Errores: MsgBox Err.Description
End Sub '-------------------------------
El problema es que no se esta cerrando realmente la instancia de Excel, y si intento ejecutar otra vez me sale "the remote server machine does not exist or is unavailable"
si alguien le ha sucedido lo mismo y ya lo ha solucionado te agradezco si me la compartes...Tank you
Título: Re: Cerrar Instancia de Excel.Application
Publicado por: m0skit0 en Miércoles 6 de Agosto de 2008, 10:53
Primero, fíjate en mi firma.
Prueba a declarar e iniciar Ap y Wb tal que así y me cuentas:
Código: Text
Dim Ap As Excel.Application
Dim Wb As Excel.Workbook
Set Ap = New Excel.Application
Set Wb = oExcel.Workbooks.Open(txtArchivo)
Título: Encontre la solucion
Publicado por: jpardo84 en Miércoles 6 de Agosto de 2008, 15:18
OK primero muchas gracias,
el prblema estaba en la linea
Fin = Range("A65000").End(xlUp).Row
cuando yo hago referencia al objeto Range o Cells cuando uso objeto de excel desde Access no lo debo hacer sin antes ponerle toda la jerarquia de objetos asi:
Fin = Wb.Worksheets("nombre_hoja").Range("A65000").End(xlUp).Row
no se por qué sucede pero sin esto no cierra la instancia y parece que crea otra de Excel que no se puede eliminar de la memoria, pero bueno, esta era la solución...gracias por su interes
Título: Re: Cerrar Instancia de Excel.Application
Publicado por: ecorrea_pe en Lunes 1 de Septiembre de 2008, 19:38
Esto me ayudo a mi
using System.Runtime.InteropServices;
///// //// todo el codigo necesario de tu aplicacion ////
//Limpiamos los objetos excel if (apExcel != null) Marshal.ReleaseComObject(apExcel); apExcel = null;
Saludos
Eriberto Correa
Título: Re: Cerrar Instancia de Excel.Application
Publicado por: F_Tanori en Martes 2 de Septiembre de 2008, 07:07
Cita de: "ecorrea_pe"
Esto me ayudo a mi
using System.Runtime.InteropServices;
///// //// todo el codigo necesario de tu aplicacion ////
//Limpiamos los objetos excel if (apExcel != null) Marshal.ReleaseComObject(apExcel); apExcel = null;
Saludos
Eriberto Correa
La diferencia es que la ayuda solicitada es en VBA no en .Net y el foro es de (VBA)
Saludos
Título: Re: Cerrar Instancia de Excel.Application
Publicado por: ecorrea_pe en Jueves 4 de Septiembre de 2008, 00:55
Bueno Cambias el using por import de VB.net
y las senticias debajo en este If .. son casi iguales que en VB que en C#