Excel, parentesis en nombre de hoja

Excel, parentesis en nombre de hoja

Postby Sebastián Almirón » Tue Mar 08, 2011 11:40 am

Hola, para seleccionar una hoja en un objeto Excel, el siguiente código funciona bien:

choja := "Prueba"
oexcel := CreateObject("Excel.Application")
oexcel:ActiveWorkBook:Sheets(choja):Select()

Sin embargo:
choja := "Prueba(2)"
oexcel := CreateObject("Excel.Application")
oexcel:ActiveWorkBook:Sheets(choja):Select()

Esto da un error, porque el nombre de la hoja contiene parentesis.
¿Hay alguna forma de solucionar esto?

Actualmente para que no me de un error le hago un bucle:
for n = 1 to oexcel:ActiveWorkBook:Sheets:Count()
if alltrim(oexcel:ActiveWorkBook:Sheets:Item(n):Name()) = choja
oexcel:ActiveWorkBook:Sheets:Item(n):Select()
exit
endif
next n

Pero esto no me sirve porque es tremendamente lento, los libros que abro tienen entre 30 y 40 hojas y tengo procesos en los que tengo que abrir miles de libros para comprobar ciertas casillas.

Cuando utilizaba Excel con OLE, la siguiente línea no daba error:
osheets := OleGetProperty(::OleBook,'Worksheets',csheet)
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 30 guests

cron