Como eliminar, un objeto de tipo word de la memoria.

Haber si alguien se ha topado con este inconveniente, creo objetos de tipo word dentro de un bucle que lee 600 filas y por cada fila crea un objeto word, este sigue en memoria así se libere. Truncando el proceso. El código que tengo es como sigue.:

For copi = 3 To registros + 2
   Set WordApp = CreateObject("Word.Application")
   Sheets(6).Select
   Sheets(6).Range("B1:I58").Select
   Selection.Copy
   With WordApp
     .Visible = False
     .Documents.Add
   End With
   WordApp.Selection.PasteSpecial
   WordApp.ActiveDocument.SaveAs ThisWorkbook.Path & "\PSI1\" & nombre & "-PSI1.docx"
   WordApp.ActiveDocument.Close False

   Set WordApp = Nothing  (Supuestamente con esta linea se libera el objeto, pero sigue en memoria.)

   keda_rango = ""
   Application.CutCopyMode = False
Next copi

1 Respuesta

Respuesta
1

Estás creando una archivo Word para "vuelta" del For ¿Esa realmente es tu intención?

Abraham Valencia

Lo que requiero es crear un archivo word de 3 páginas, por cada línea almacenada en en una hoja de datos que contiene 500 registros, el proceso va, esta bien copia crea los archivos, los almacena en la ruta que deseo, pero en cierta cantidad se trunca, según lo que eh estado revisando es porque el objeto word se mantiene en memoria tantas veces que trunca el bucle y generar error.

Al momento de pulsar ctrl+alt+supr, se puede apreciar varias veces word abierto.

Cuando usas "Set WordApp = Nothing" lo que haces es liberar la variable, que sí libera algo de memoria pero, al usar "WordApp.ActiveDocument.Close False" solo cierras el archivo de Word, no la instancia Word y sigues abriendo otras. Cierrala antes del "Nothing". Usa algo así:

WordApp. Quit

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas