Наткнулся на такую проблему: при проверки на ввод параметра с Optional в Excele невведенный параметр оказывается с нулевым значением & IsMissing всегда False
для примера:
Function UName(Optional LN As String, Optional FN As String) As String
If Not (IsMissing(LN)) And Not (IsMissing(FN)) Then
UName = "1"
ElseIf IsMissing(LN) And Not (IsMissing(FN)) Then
UName = "2"
ElseIf Not IsMissing(LN) And IsMissing(FN) Then
UName = "3"
ElseIf IsMissing(LN) And IsMissing(FN) Then
UName = "4"
End If
End Function
Sub demoUName()
MsgBox UName("Green", "Isle")
MsgBox UName("Green")
MsgBox UName(, "Isle")
MsgBox UName()
End Sub
показывать всегда будет "1"