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
|