adfa76
07-06-2007, 21:57:57
Hola gente.
Estoy intentando usar desde un programa hecho en Delphi 7 la función subtotal de Excel.
excel.range['a2:g50'].Subtotal(1,-4157,4,false,false,true);
Una macro de excel al grabarla haciendo los subtotales hace esto:
Sub Macro1()
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(4,6), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End Sub
Este tema por lo que vi fue tratado en este post.
21959 (http://www.clubdelphi.com/foros/showthread.php?t=21959)
Si bien la solución encontrada por tutuk (http://www.clubdelphi.com/foros/member.php?u=13) es funcional me gustaria poder hacerla un poco más elegante (sobre todo porque no es tan sencillo para mi aplicacion el ir recorriendo las celdas para pegar la formula).
El problema radica en el parametro "TotalList" de la funcion que segun la ayuda del Excel recibe un Variant con una matriz adentro.
Si ejecuto el programa tal cual la sentencia que esta arriba funciona, pero no le he encontrado la vuelta para poder totalizar más de una columna.
He provado usar la funcion varArrayOf([4,6]) por ejemplo para totalizar esas 2 columnas pero no he tenido suerte, hay un tema con los tipos y no me doy cuenta que es.
Alguien tiene como hacerlo funcionar.
Saludos
Estoy intentando usar desde un programa hecho en Delphi 7 la función subtotal de Excel.
excel.range['a2:g50'].Subtotal(1,-4157,4,false,false,true);
Una macro de excel al grabarla haciendo los subtotales hace esto:
Sub Macro1()
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(4,6), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End Sub
Este tema por lo que vi fue tratado en este post.
21959 (http://www.clubdelphi.com/foros/showthread.php?t=21959)
Si bien la solución encontrada por tutuk (http://www.clubdelphi.com/foros/member.php?u=13) es funcional me gustaria poder hacerla un poco más elegante (sobre todo porque no es tan sencillo para mi aplicacion el ir recorriendo las celdas para pegar la formula).
El problema radica en el parametro "TotalList" de la funcion que segun la ayuda del Excel recibe un Variant con una matriz adentro.
Si ejecuto el programa tal cual la sentencia que esta arriba funciona, pero no le he encontrado la vuelta para poder totalizar más de una columna.
He provado usar la funcion varArrayOf([4,6]) por ejemplo para totalizar esas 2 columnas pero no he tenido suerte, hay un tema con los tipos y no me doy cuenta que es.
Alguien tiene como hacerlo funcionar.
Saludos