Visual Basic - Excel se queda residente en memoria

Life is soft - evento anual de software empresarial
 
Vista:

Excel se queda residente en memoria

Publicado por Jorge (6 intervenciones) el 21/11/2004 19:45:31
Estoy haciendo una aplicación que lleva datos a un fichero excel, y des de este imprimo. Todo iba bien hasta que llegó el momento de cerrar el fichero.
Para cerrarlo utilizo el siguiente codigo:

HojaExcel.ActiveWindow.Close False
HojaExcel.Workbooks.Close
HojaExcel.Quit
Set HojaExcel = Nothing

Pero desde que que inserto el siguiente codigo para que las celdas de excel se autograduen (Columns("A:A").EntireColumn.AutoFit)
dependiendo de la longitud del texto el dichoso fichero se queda residente en memorias hasta que cierro por completo la aplicación.
¿Alguien podria ayudarme a resolverlo por favor?.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Excel se queda residente en memoria

Publicado por rodrigo (140 intervenciones) el 23/11/2004 18:06:46
Cuando haya terminado de utilizar un objeto, borre las variables que hagan referencia al objeto de forma que se pueda liberar el objeto de la memoria. Para borrar una variable de objeto, establézcala a Nothing. Por ejemplo:
Dim acApp As Access.Application
Set acApp = New Access.Application
MsgBox acApp.SysCmd(acSysCmdAccessVer)
Set acApp = Nothing

Todas las variables de objeto se borran automáticamente cuando se salen del alcance. Si desea que la variable conserve su valor en todos los procedimientos, utilice una variable pública o de nivel formulario, o cree procedimientos que devuelvan el objeto. El código siguiente muestra como se utilizaría una variable pública:
Public wdApp Aas Word.Application
.
.
.
' Crea un objeto Word e inicia Microsoft Word.
Set wdApp = New Word.Application
.
.
.
' Microsoft Word no se cerrará hasta que la
' aplicación termine o la referencia se establezca a
' Nothing:
Set wdApp = Nothing

Tenga cuidado también de establecer todas las referencias de objetos a Nothing cuando termine, incluso las de objetos dependientes. Por ejemplo:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlApp = Nothing ' ¡Cuidado! xlBook puede contener
' aún una referencia de objeto.
Set xlBook = Nothing ' Ahora se han borrado todas
' las referencias.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel se queda residente en memoria

Publicado por Santiago (1 intervención) el 27/03/2009 23:37:15
Yo tengo el mismo problema. creo un archivo excel, lo actualizo en las celdas, lo salvo, lo cierro, utilizo .quit., utilizo set xxxx=Nothing y aun queda residente

muestro ejemplo sencillo:

Dim Applic As New Excel.Application
Dim Book As New Excel.Workbook
Dim Sheet As New Excel.Worksheet

Private Sub Command1_Click()
Set Applic = New Excel.Application
Set Book = Applic.Workbooks.Add
Set Sheet = Book.Worksheets("Hoja1")

Sheets("Hoja1").Name = ("NUEVA")

Book.SaveAs ("C:KCUArchivo.Xls")
Book.Close ("C:KCUArchivo.Xls")

Applic.Quit

Set Applic = Nothing
Set Book = Nothing
Set Sheet = Nothing

MsgBox "The file has been created."
End
End Sub

Private Sub Command2_Click()
End
End Sub

Alguien me puede ayudar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar