A ver si alguien ha dado con esto, por que lo que soy yo....
Necesito consultar dos hojas de excel en un proceso. Primero abro una, consulto lo que necesito (mas bien, lo almaceno en un arreglo), cierro esta hoja, abro la segunda, y consulto en esta segunda hoja, pero que me ocurre:
- Cuando "cierro" la primera hoja, esto no se hace, pues se conserva en memoria (se visualiza todavia el EXCEL trabajando en el Administrador de Tareas de Windows), y
- para cuando abro la segunda hoja, a pesar de utilizar variables para los objetos distintas, me sigue activo el primer objeto.
¿QUE PASA?
El trozo de codigo es como sigue:
Code: Select all
cLineaAh := "oClientes:Load(),"
cLineaAh += "AADD(aAho1,{STRZERO(VAL(GV(oHoja,nRow,1,'C')),8,0),GV(oHoja,nRow,5,'N'),GV(oHoja,nRow,6,'N')}),"
cLineaAh += "oClientes:GoTop(),nRow++"
oExcel := TOleAuto():New( "Excel.Application" )
oExcel:WorkBooks:Open( (mio:=cGetFile( "*.XLS", "Seleccione el Archivo de Excel c/Ahorros PRIMERA quincena",,,,.T. )) )
oHoja:=oExcel:Get( "ActiveSheet" )
nRows:=oHoja:UsedRange:Rows:Count()
nRow:=6
CLIENTES->( DBEVAL( Compile(cLineaAh),,COMPILE('nRow<=nRows') ) )
Memory(-1)
oExcel:Quit()
oExcel := NIL
oExcel := TOleAuto():New( "Excel.Application" )
oExcel:WorkBooks:Open( (mio:=cGetFile( "*.XLS", "Seleccione el Archivo de Excel",,,,.T. )) )
cTime1 := TIME()
oHoja := oExcel:Get( "ActiveSheet" )
nRows := oHoja:UsedRange:Rows:Count() // Cantidad de filas con datos
nRow := 2
d1 := GV(oHoja, nRow,3, "N") // esta variable me retorna el contenido de la primera hoja !