FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Defecto grave de Excel al estar celda en estado de edición
¡Buen día a todos!
Continúo con mi experiencia en el uso de componentes Servers versión Office 97, en Delphi 7. Agradezco a Román su atinada y oportuna respuesta a mi duda anterior (¿Funciona un compilado XP en PC con Office 2000?). Para mayor compatibilidad, me funciona mejor usar la versión 97 de dichos componentes. Ahora me encuentro ante una situación extraña, que a primera vista me parece un importante defecto de la biblioteca COM de Excel. Tengo una aplicación Delphi 7 que utiliza un componente TExcelApplication versión Office 97, para realizar de forma automática ciertas tareas con un libro Excel. Regularmente el usuario tendrá abierto algún documento en Excel antes de ejecutar el proceso de automatización de mi aplicación. El proceso de automatización se realiza correctamente, respetando los demás documentos que el usuario tenga abiertos en ese momento. Sin embargo, si en ese momento está abierto un libro Excel con una de sus celdas en estado de edición, es decir, con el cursor de teclado parpadeando dentro de ella o en la barra superior de captura, entonces las sentencias que operan sobre el objeto TExcelApplication causan excepciones OLE. Por ejemplo, una sentencia como Código:
AEAplicacion.Workbooks.Open (....); Y una sentencia como Código:
AEAplicacion.Cells.Item [1, 1].Select; Increíblemente, si en Excel quito el modo de edición de la celda (presionando la tecla Esc, por ejemplo), las sentencias anteriores de mi programa se ejecutan como se espera, sin ningún problema. Noté que en el entorno de Excel no puede grabarse, ejecutarse o detenerse una macro, cuando una celda se encuentra en estado de edición. Esto me hace suponer que durante el estado de edición de una celda se inhabilita cierta parte de la biblioteca COM de Excel, lo cual causa las excepciones anteriormente mencionadas. No he encontrado un método QuitEditMode, o algo así, que pueda ejecutar antes que las demás instrucciones para evitar este problema. Procederé a realizar una prueba temporal con la versión XP de los coponentes Server. Mientras tanto, les agradezco todas las aportaciones que puedan hacer al respecto. ¡Un abrazo! Al González . El azar es el último de los recursos |
|
|
|