FoxPro/Visual FoxPro - Objetos ole automatizacion excel

   
Vista:

Objetos ole automatizacion excel

Publicado por javi (3 intervenciones) el 05/10/2007 09:46:46
Hola a todos. Estoy intentando crear desde visual foxpro un documento excel con varias hojas.

Para crear la aplicación utilizo lo siguiente: oXL=CREATEOBJECT("Excel.Application")

Despues creo un documento de trabajo: oXL.workbooks.ADD

Este libro de trabajo se crea solamente con 3 paginas pero yo necesito bastantes más aunque no esten llenas ( es para separar datos de diferentes usuarios).

Para crear hojas utilizo lo siguiente oXL.Sheets.add

A las 3 primeras paginas les puedo cambiar el nombre sin problema usando esto:

oXL.Sheets(ALLTRIM("Hoja" + ALLTRIM(STR(nHoja)))).NAME=cUser para cambiar los nombres iniciales de hoja1,hoja2,hoja3 por los diferentes usuarios.

El problema viene cuando quiero cambiar las paginas que creo yo.

He utilizado lo siguiente pero no funciona me da un error de ejecución: el siguiente (Código
de excepción OLE IDispatch 0 de ?:?). Pero el caso que si quito la línea 3( oXL.Sheets(vNomHoja1).NAME=cUser) no da error de ejecución por lo que la línea 2 no parece que de error y se selecciona.

vNomHoja1 = "Hoja" + ALLT(STR(nHoja)) // porque he visto que les llama hoja4,hoja5 ...
oXL.Sheets(vNomHoja1).SELECT
oXL.Sheets(vNomHoja1).NAME=cUser

´También he probado a hacer esto pero sigue con el mismo error:

vNomHoja1 = "Hoja" + ALLT(STR(nHoja)) // porque he visto que les llama hoja4,hoja5 ...
oXL.Sheets(vNomHoja1).SELECT
oXlsheets = xlapp.activesheet
oXLsheets.NAME=cUser

¿Alguien me puede ayudar? LLevo toda la semana para esto y estoy desesperado!! Gracias de antemano.
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:Objetos ole automatizacion excel

Publicado por NAHEBER MEJIA (1 intervención) el 02/11/2007 00:04:31
Prueba con esto:
luego de haber adicionado la hoja con la siguiente instruccion
oExcel.Worksheets.Add(,oExcel.ActiveSheet)
coloca luego la siguiente linea
oExcel.ActiveSheet.name = ALLTRIM(THISFORM.TExt4.Value) && donde ALLTRIM(THISFORM.TExt4.Value) es donde esta cualquier texto.

me cuentas si te sirve, me escribes al correo
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