Custom functions
From Apache OpenOffice Wiki
Simple functions
Cell as an argument
[oobas]
Function Cube( c1 )
Cube = c1 * c1 * c1
End Function
You can put =Cube(A1) in any cell.
More cells as the arguments
[oobas]
Function SimpleSum( c1, c2 )
SimpleSum = c1 + c2
End Function
You can put =SimpleSum(A1;A2) in any cell.
Cells range as an argument
[oobas]
Function MySum( oRange As Variant )
If Not IsArray( oRange ) Then
If IsNumeric( oRange ) Then
MySum = oRange
else
MySum = 0
End If
Exit Function
End If
Dim nSum As double
nSum = 0
For i = 1 To ubound( oRange, 1 )
For j = 1 To ubound( oRange, 2 )
If IsNumeric( oRange( i, j ) ) Then
nSum = nSum + oRange( i, j )
End If
Next j
Next i
MySum = nSum
End Function
You can put =MySum(A1:A3) in any cell.
It is not possible to write to custom function that uses a cell range that spans sheets. E.g. =Sheet1.A2:Sheet2.A2 instead you would have to have separate parameters for each sheet.