2010-10-14 3 views
0

, пожалуйста, помогите мне в следующем: Я хочу определить максимальное значение в колонке open office calc, используя интерфейс OOoTools.pas . Это, как фас, как я пришел:OpenOffice Automation Delphi, как использовать callfunction

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

Это работает

Конечно, я хочу, чтобы заполнить значения столбца, как:

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

Я получаю сообщение «com.star .lang.IllegalArgumentException :.» Зачем? Thanks

ответ

0

Здесь я снова.

Это метод callFunction, который дает эту ошибку или метод 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; 

Я должен сказать, что я нахожу documentation немного неясным.

Если у вас есть ошибка по методу callFunction в моем примере выше, попробуйте следующее:

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

Ошибка возникает на oResult: = oFuncService.callFunction ('MAX', VarArrayOf ([oCellRange])); – addelichtman

+0

Привет, The_Fox, тогда я получаю ошибку «Тип несоответствия» – addelichtman

+0

@addelichtman: Возможно, недопустимое значение в вашем диапазоне K8: K10? Текст вместо числового значения? –

Смежные вопросы