2010-10-14 7 views
0

s'il vous plaît aidez-moi avec ce qui suit: Je veux déterminer la valeur maximale dans une colonne open office calc en utilisant l'interface OOoTools.pas . Ce comme fas que je viens:OpenOffice Automation Delphi comment utiliser une fonction d'appel

Procedure FindMaximum(oMySheet : Variant); 
Var 
      oFuncService : Variant; 
Begin 
    oFuncService := CreateUnoService('com.sun.star.sheet.FunctionAccess'); 
    ShowMessage(oFuncService.callFunction('MAX', VarArrayOf([10,20,50]))); 
End; 

Cela fonctionne

Bien sûr, je veux remplir les valeurs d'une colonne comme:

ShowMessage(oFuncService.callFunction('MAX', VarArrayOf([oMySheet.getCellRangeByName('K8:K10')]))); 

Je reçois le message « com.star .lang.IllegalArgumentException :. " Pourquoi? Merci

Répondre

0

Me revoilà.

Est-ce la méthode callFunction qui donne cette erreur ou la méthode getCellRangeByName?

procedure FindMaximum(oMySheet : Variant); 
var 
    oFuncService : Variant; 
    oCellRange: Variant; 
    oResult: Variant; 
begin 
    oFuncService := CreateUnoService('com.sun.star.sheet.FunctionAccess'); 

    //error here? 
    oCellRange := oMySheet.getCellRangeByName('K8:K10'); 

    //or error here? 
    oResult := oFuncService.callFunction('MAX', VarArrayOf([oCellRange])); 

    ShowMessage(oResult); 
end; 

Je dois dire que je trouve le documentation un peu clair.

Lorsque vous avez l'erreur sur la méthode callFunction dans mon exemple ci-dessus, essayez ceci:

//CellRange not wrapped in a VariantArray 
oResult := oFuncService.callFunction('MAX', oCellRange); 
+0

L'erreur se produit sur oResult: = oFuncService.callFunction ('MAX', VarArrayOf ([oCellRange])); – addelichtman

+0

Bonjour The_Fox, alors je reçois une erreur "Type Mismatch" – addelichtman

+0

@addelichtman: Y at-il peut-être une valeur invalide dans votre gamme K8: K10? Texte au lieu de la valeur numérique? –

Questions connexes