Quote Originally Posted by Paul_Hossler View Post
Debug show vbObjectErrror is a Long
So, not unsigned?

"The values are not signed Longs, so none of this is about "negative" anything. These values are unsigned and 32 bits long (DWORD)."
https://www.vbforums.com/showthread....=1#post5538131
BUt, .... if you're not in a class module then you probably want to forget about vbObjectError
Question: Is there any drawback to using vbObjectError in a module?

News flash: My "Custom" source method actually does work. As long as there's no harm in re-using native error numbers, i CAN disambiguate with .Source. Just have to start the Enum at 1, not 0. Which means, my custom errors seem to work fine without using vbObjectError. Am i missing anything?

So now i have to choose:
- i can re-use native error numbers, and disambiguate by setting .Source to "Custom"
- or, avoid native numbers by starting my enum at vbObjectError

You could bit map...

...
        Medium = 2 ^ 14
        Severe = 2 ^ 15
...
        CorruptWorkbook = 8
        ShellError = 16
...
    On Error Goto ErrHandle    ' DID YOU FORGET THIS?
...
    If (Err.Number And UserCancel) <> 0 Then
        sErr = "User Cancel"
...
    If (Err.Number And Mild) <> 0 Then
        sLvl = "Mild"
...
wOW, niCE woRK!
Stealing

... if you didn't have too many errors
How many?