Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does "If Value is Nothing" throw "Object Required (Error 424)"

The following code throws Object Required (Error 424) at the if statement comparing with Nothing independent of the value given. Why?

Public Function SqlizeCellValue(ByVal Value As Variant) As Variant
    If Value Is Nothing Then
        SqlizeCellValue = Nothing
    ElseIf Value = Null Then
        SqlizeCellValue = Null
    ElseIf Value = "" Then
        SqlizeCellValue = Null
    ElseIf Value = "0" Then
        SqlizeCellValue = Null
    ElseIf Value = "---" Then
        SqlizeCellValue = Null
    ElseIf LCase(Value) = "n.c." Then
        SqlizeCellValue = Null
    Else
        SqlizeCellValue = Value
    End If
End Function
Public Sub TestSqlizeCellValue()
    Debug.Assert SqlizeCellValue("") Is Null
    Debug.Assert SqlizeCellValue("0") Is Null
    Debug.Assert SqlizeCellValue("---") Is Null
    Debug.Assert SqlizeCellValue(Nothing) Is Nothing
    Debug.Assert SqlizeCellValue(Null) Is Null
End Sub
like image 486
Torsten Knodt Avatar asked Oct 31 '22 00:10

Torsten Knodt


1 Answers

Because Value in your function definition is set to type Variant and only an Object can be Set to Nothing

like image 107
Dave Avatar answered Nov 10 '22 18:11

Dave