【发布时间】:2016-11-08 18:09:40
【问题描述】:
以下代码在 if 语句中抛出 Object Required (Error 424) 与 Nothing 比较,与给定值无关。为什么?
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。请您提供这个作为答案,以便我可以将其标记为已接受/正确?
标签: vba if-statement nothing