Muy buenas, estoy insertando hojas en un libro de excel pero se crean en la posicion de la hoja activa y me desplaza esta a la ultima posicion
Hoja1, Hoja2, Hoja6, Hoja5, Hoja4, Hoja3
Existe alguna forma de que las hojas se añadan al final?
como Sheets.Add After
el codigo que utilizo es:
oExcel := ExcelObj()
// Inicio
If oExcel == nil
MsgInfo( "Excel no está instalado", "Informe" )
RETURN(.F.)
Endif
oExcel := TOleAuto():New("Excel.Application")
oExcel:WorkBooks:Add()
oExcel:sheets("Hoja3"):Select()
oHoja:=oExcel:ActiveSheet()
oExcel:sheets:Add()
Saludos
Juan Jose
Insertar Hoja en libro Excel
-
- Posts: 102
- Joined: Wed May 31, 2006 8:49 am
- Location: España
- Sebastián Almirón
- Posts: 157
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: Insertar Hoja en libro Excel
No no he probado, pero supongo que antes del oExcel:sheets:Add() debes posicionarte en la última hoja, algo así:
nultima := oExcel:Workbooks:Sheets:Count()
oExcel:Sheets:Item(nultima):Select()
oExcel:sheets:Add()
o también puedes después del oExcel:sheets:Add() moverla a la ultima posición:
oExcel:sheets:Add()
oHoja := oExcel:ActiveSheet()
oHoja:Move(,oExcel:Workbooks:Sheets:Count()) //Ojo debe ser el segundo parámetro de Move
nultima := oExcel:Workbooks:Sheets:Count()
oExcel:Sheets:Item(nultima):Select()
oExcel:sheets:Add()
o también puedes después del oExcel:sheets:Add() moverla a la ultima posición:
oExcel:sheets:Add()
oHoja := oExcel:ActiveSheet()
oHoja:Move(,oExcel:Workbooks:Sheets:Count()) //Ojo debe ser el segundo parámetro de Move
-
- Posts: 102
- Joined: Wed May 31, 2006 8:49 am
- Location: España
Re: Insertar Hoja en libro Excel
Sebastián, gracias por contestar
La primera opción que me das es la que estoy utilizando, y la hoja se crea en la posición de la hoja activa, desplazando esta a la derecha.
La segunda opción me da error y no la puedo poner en marcha
Encontré por el foro la siguiente instrucción
oBook := oExcel:ActiveWorkbook:Sheets:Add( oExcel:ActiveWorkbook:Worksheets( oExcel:ActiveWorkbook:Worksheets:Count() ) )
Pero actúa como el primer caso
La primera opción que me das es la que estoy utilizando, y la hoja se crea en la posición de la hoja activa, desplazando esta a la derecha.
La segunda opción me da error y no la puedo poner en marcha
Encontré por el foro la siguiente instrucción
oBook := oExcel:ActiveWorkbook:Sheets:Add( oExcel:ActiveWorkbook:Worksheets( oExcel:ActiveWorkbook:Worksheets:Count() ) )
Pero actúa como el primer caso