How can I detect "nothing"?
Seems to be much ado about Nothing! lol
"plh" wrote:
This takes a little explaining, please bear with me:
As part of a data mining project I have Excel (2003) VBA code that builds a list
out of a user defined variable type:
Type OpRec
.........
........
........
[List of variable eliminated to save space]
End Type
Type SORec
strSOSfx As String
strPItem As String
OpRecord() As OpRec
End Type
Dim sO() As SORec
Because a few of the lines in the file this reads result from erroneous or
canceled shop orders, when the process reaches those lines, I try to skip over
them:
If (UBound(sO(i).OpRecord) < 0) Then
This works OK for many but a few end up with "Subscript out of range". At such
times watches tell me that sO(i).OpRecord = Nothing.
I tried
If (UBound(sO(i).OpRecord) < 0) And (sO(i).OpRecord < Nothing) Then
And got "Invalid use of Object"
I tried
Dim varNothing
Set varNothing = Nothing
If (UBound(sO(i).OpRecord) < 0) And (sO(i).OpRecord < varNothing) Then
And got "Type Mismatch"
I tried
If (UBound(sO(i).OpRecord) < 0) And Not IsNull(sO(i).OpRecord) Then
but got the message "Only user defined types defined in public object modules
can be coerced to or from a variant passed to late-bound functions"
This last one goes over my head. How do I set up a public object module (what
sources of info can I you recommend) and even if I do that, will it work? Or is
there a simpler way?
(There are many thousands of lines in the input file, so manual editing is not
an option!)
Thank You,
-plh
--
I keep hitting "Esc" -- but I'm still here!
|