PDA

Ver la Versión Completa : FREE OBJECT excel (no cierra excel)


nievesmp
05/07/12, 09:38:41
Buenos días, espero alguien pueda saber el motivo de esto.

Tengo este código, que ejecuta unas macros para un fichero excel, y luego lo cierra.

* copiamos el fichero excel elegido por el usuario
CALL METHOD cl_gui_frontend_services=>file_copy
EXPORTING
SOURCE = ld_fichero
DESTINATION = c_copiat
overwrite = 'X'.
IF sy-subrc EQ 0.
* abrimos fichero copia
CREATE OBJECT h_excel 'EXCEL.APPLICATION'.
CALL METHOD OF h_excel 'WORKBOOKS' = h_mapl.
SET PROPERTY OF h_excel 'VISIBLE' = 0.
ld_copia = c_copiat.
CALL METHOD OF h_mapl 'OPEN'
EXPORTING
#1 = ld_copia.
CALL METHOD OF h_excel 'ActiveWorkbook' = h_book .
CALL METHOD OF h_book 'Activesheet' = h_sheet .

* ejecutamos macro de fichero copia
CALL METHOD OF h_excel 'RUN'
EXPORTING
#1 = 'VolcadoExcel'.

* cerramos fichero copia
CALL METHOD OF h_book 'Close'
EXPORTING
#1 = 0.
CALL METHOD OF h_mapl 'CLOSE'
EXPORTING
#1 = 0.

SET PROPERTY OF h_excel 'VISIBLE' = 1.
FREE OBJECT h_mapl.
FREE OBJECT h_book.
FREE OBJECT h_sheet."Libera la hoja
FREE OBJECT h_excel."Libera la aplicacion (En esta instrucción se cuelga)

h_excel en este punto contiene:
HEADER: OBJH
TYPE: OLE2
HANDLE: 26


Hasta ahora, este programa a funcionado siempre y no había habido problema, pero ahora falla al ejecutarlo desde cualquier ordenador.

He realizado una prueba y he verificado en la lista de tareas que Excel.exe está abierto, si fuerzo este proceso y lo cierro con el sistema operativo, entonces el programa continúa.

¿Por qué puede estar ocurriendo esto? Gracias!!!