From within the implementation of a LibreOffice function (i.e. macro), I would like to test whether the content of a cell (passed as a parameter) is a number or not.

```
Function myFunction(a,b,c)
If not ISNUMBER(a) Then
myFunction = "NaN"
Else
REM Calculations here
myFunction = result
End If
End Function
```

I’ve found the LibreOffice Calc function `ISNUMBER()`

that does exactly what I want, but I don’t know how to call it from the implementation of my LibreOffice Basic function… Upon execution, the implementation given above would show a message box with the error message `BASIC runtime error. Sub-procedure or function procedure not defined.`

I’ve also come across the LO Basic function `isNumeric()`

but it does not have exactly the same behavior. In particular, when using a cell with `#DIV/0!`

as argument, `isNumeric(#DIV/0!)`

returns `TRUE`

whereas `ISNUMBER(#DIV/0!)`

returns `FALSE`

. I want the latter behavior.

The behavior I want is:

- True if a number e.g. “3” or “3.1415”
- False if the content is a string e.g. “hello”
- False if it is a LO Calc error e.g. “Error: 510”
- False if mathematical errors e.g. “#N/A!” or “#DIV/0!” (that’s the difficult part! See paragraph below…)

Eventually, regardless of my current problem (how to call the `ISNUMBER()`

function), I would (also ) love a general answer that could give a general procedure as to how to call LibreOffice Calc functions from the implementation of a LibreOffice Basic function.

Thanks in advance for your answers