View Single Post
  #11   Report Post  
Posted to microsoft.public.excel.programming
deltaquattro deltaquattro is offline
external usenet poster
 
Posts: 65
Default How to return an error code from a function

You're right, Dave. I made a mistake when I tested the the function
which passed boolean, because in testme I kept calling the function
which passed myRetError as an Object. So it's not true that functions
can return just a single variable: they can actually return any number
of variables (I tried that also with doubles, longs, etc.). Good to
know,

Best Regards

deltaquattro

On 8 Feb, 15:47, Dave Peterson wrote:
Yep, you could just pass a boolean so you could check that or you could check
the err.number to see if it's different from 0.

Just to show that it's ok to pass booleans:

Option Explicit
Function mySqrt(x As Double, WorkedOk As Boolean, _
* * * * * * * * * * *myError As ErrObject) As Double

* * Dim myVal As Variant

* * On Error Resume Next
* * myVal = Sqr(x)
* * If Err.Number < 0 Then
* * * * Set myError = Err
* * * * mySqrt = -1 'anything you want
* * * * WorkedOk = False
* * Else
* * * * mySqrt = myVal
* * * * WorkedOk = True
* * End If

End Function
Sub testme()

* * Dim res As Double
* * Dim myRetError As ErrObject
* * Dim myRetOk As Boolean

* * res = mySqrt(-1, myRetOk, myRetError)

* * If myRetOk = False Then
* * * * With myRetError
* * * * * * MsgBox .Number & vbLf & .Description
* * * * End With
* * Else
* * * * MsgBox res
* * End If

End Sub