Problemas al seleccionar un rango via automatización.

19/08/2009 - 16:06 por mpulla | Informe spam
Problemas con automatización.

Buen dia.
Tengo un PC con office 2000, desde una aplicación mando a crear libro
Excel insertando datos y dándole formato, pero dio problemas en varias
instrucciones de la aplicación, por lo que desinstale office 2000 e
instale office 2003, pero el problema persiste, lo raro del problema
es que en otro PC con office 2003 al mandar a crear el libro Excel
desde la misma aplicación igual versión esta corre sin problemas.
Mi código esta hecho en Visual FoxPro 8, y la línea que da problemas
es al seleccionar el rango.

WITH .Range("A4,J4,K4,M3,M4,O4,P4,Q4,R4")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
ENDWITH

En mi PC tengo instalado Office 2003, 2007 y la aplacion no tiene
problemas.

Realmente no se que puede estar mal, espero me puedan ayudar.

Saludos.
Mauricio Pulla.
Cuenca-Ecuador
 

Leer las respuestas

#1 Héctor Miguel
19/08/2009 - 20:40 | Informe spam
hola, Mauricio !

... desde una aplicacion mando a crear libro... insertando datos y dandole formato
pero dio problemas en varias instrucciones de la aplicacion
por lo que desinstale office 2000 e instale office 2003 pero el problema persiste
lo raro del problema es que en otro PC con office 2003 al mandar a crear el libro Excel
desde la misma aplicacion igual version esta corre sin problemas.
Mi codigo esta hecho en Visual FoxPro 8, y la linea que da problemas es al seleccionar el rango.

WITH .Range("A4,J4,K4,M3,M4,O4,P4,Q4,R4")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
ENDWITH

En mi PC tengo instalado Office 2003, 2007 y la aplacion no tiene problemas.
Realmente no se que puede estar mal, espero me puedan ayudar...



(hasta donde se...) cuando excel es una instancia provocada/controlada desde una aplicacion stand-alone (VB, VFP, etc.)
-> no es una aplicacion que este en control total de sus habilidades
-> ningun archivo de auto-carga/apertura se inicia en conjunto (complementos, ni siquiera el personal.xls)
-> por este motivo... las constantes (internas) de excel (como xlDown, xlCenter, xlCellTypeVisible, xlR1C1, etc.)...
NO son transparentes para la aplicacion instanciadora (salvo -probablemente- en la version 2007 -?-)

bajo estas sircunstancias... necesitaras...
o... CAMBIAR (en esas lineas de codigo) las constantes POR su valor real...
p.e. xlCenter (que es lo mismo que xlHAlignCenter) equivale al valor -4108 (menos_cuatro_uno_cero_ocho)
puedes comprobar esos valores (en vba de excel) desde la ventana de inmediato con la sentencia: ? xlCenter y pulsas {enter}
o... que en tu proyecto VB/VFP/... establezcas una referencia a la libreria de objetos de excel

espero que algo de lo siguiente pueda ser de utilidad para encontrar el mejor medio de automatizar excel
pero, si cualuier duda (o informacion adicional)... comentas ?
saludos,
hector.

=
te puedes bajar un ZIP con las equivalencias de las constantes de excel en: http://www.cpearson.com/Zips/XLConsts2.ZIP

en las paginas de el guille encuentras varios temas relacionados con excel: -> http://tinyurl.com/kn8vbl

en el sitio de Emilio Sancha tambien encuentras algunos ejemplos con medios de automatizacio hacia excel:
-> http://www.mvp-access.es/emilio/Exc...cargas.asp

en la pagina de Ole P Erlandsen hay mas ejemplos de automatizacio de excel desde otras aplicaciones (word, ppnt, etc.)
-> http://www.erlandsendata.no/english...t=envbaole

o puedes buscar articulos relaciondos desde la base del conocimiento de MS (p.e.)

Como automatizar Microsoft Excel desde Visual Basic
http://support.microsoft.com/kb/219151/

Como automatizar Microsoft Excel desde Microsoft Visual C# .NET
http://support.microsoft.com/kb/302084

desde la MSDN hay mas articulos relacionados con excel y su automatizacion
http://social.msdn.microsoft.com/Se...n&ac=3

Preguntas similares