我有一个VBA功能基本上沿着这些方向:
Public Function JoinDateTime(DateTime As String, Time As String) As Date
Dim dtDate As Date
dtDate = CDate(Format(DateTime, "dd/mm/yyyy"))
dtDate = dtDate & " " & Format(Time, "hh:mm")
JoinDateTime = dtDate
End Function
Run Code Online (Sandbox Code Playgroud)
它将日期和时间粘合在一起,形成日期时间值.(真正的功能背后有更多的逻辑.)
问题是,我想为传递给它的恼人值添加处理.这主要用于空/空值 - 如果DateTime为空,则返回空.如果它是一个返回#Error的文本字符串,那么它不会只是默默地失败似乎是一个好主意.
问题是,我不知道该怎么做.我想过做一个早期的回归,也许就像在函数的开头推迟这个:
If DateTime = Null or DateTime = "" Then
JoinDateTime = Null
End If
Run Code Online (Sandbox Code Playgroud)
但它似乎并不认为这是一个返回,仍然执行函数的其余部分.
有没有办法做到这一点?一个更好的方法,理想情况下?
要从 VBA 中的函数提前返回,您需要使用Exit Function
类似于Exit Sub
、Exit For
等的语句。因此,这
If DateTime = Null or DateTime = "" Then
JoinDateTime = Null
Exit Function 'Au revoir
End If
Run Code Online (Sandbox Code Playgroud)
将阻止下面其余代码的执行。