Следующий код генерирует Object Required (Error 424)
в операторе if по сравнению с Nothing
независимо от заданного значения. Зачем?Почему «If Value is Nothing» throw «Object Required (Ошибка 424)»
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
Поскольку 'value' является' Variant' и только 'Object' может быть установлен в' Nothing'. – Dave
Спасибо @Dave. Не могли бы вы предоставить это как ответ, пожалуйста, чтобы я мог отметить это как принято/правильно? –