FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#26
|
||||
|
||||
En este caso no me sirve lo de la plantilla, ya que la hoja es bastante compleja (una demostración de los calculos de un programa complejo según exigencias de la Ley) por eso estoy obligado a incluir las funciones de Excel, Ya logré usar fórmulas simples y la función SUMA que se usa por ej.
'=SUM(A1:A15)' ó '=RAND()' ----> Aleatorio Noten que es SUM y no SUMA ahora si trato de usar la funcion =SI() '=IF(B5-B6<0;B5-B6;0)' Me da un "Ole error 800A03EC" y lo mismo me pasa con la funcion ROUND (Redondear). He usado este código para hacer pruebas de sintaxis (en edit1.text) y no he podido encontrar el problema. Código:
Function LaFormula(f:String):String; Var p : Integer; Begin While(pos('##',f) <> 0) do Begin p := pos('##',f); Delete(f,p,2); Insert(IntToStr(Row),f,p); End; Result := f; End; procedure TForm1.Button1Click(Sender: TObject); Var RangeE:Range; i,Row: Integer; Begin For i := 0 to Query1.FieldCount-1 do begin RangeE.Value := Query1.Fields[i].DisplayLabel; RangeE := RangeE.Next; End; Row := 2; While not(Query1.Eof) do Begin RangeE := ExcelApplication1.Range['A'+IntToStr(Row),'A'+IntToStr(Row)]; For i := 0 to Query1.FieldCount-1 do begin RangeE.Value := Query1.Fields[i].AsString; RangeE := RangeE.Next; End; RangeE.Value := LaFormula('=SUM(C##:E##)'); RangeE := RangeE.Next; RangeE.Value := LaFormula(Edit1.Text); Query1.Next; Inc(Row); End; end;
__________________
Sitrico Última edición por sitrico fecha: 26-04-2004 a las 22:23:09. |
|
|
|