请问一下
public function dosomething(optional myname as string) as boolean
dosomething=ismissing(myname)
end function为什么总是返回false呢?

解决方案 »

  1.   

    返回 Boolean 值,指出一个可选的 Variant 参数是否已经传递给过程。语法IsMissing(argname)必要的 argname 参数包含一个可选的 Variant 过程参数名。说明使用 IsMissing 函数来检测在调用一个程序时是否提供了可选 Variant 参数。如果对特定参数没有传递值过去,则 IsMissing 返回 True;否则返回 False。如果 IsMissing 对某个参数返回 True,则在其它代码中使用这个丢失的参数将产生一个用户自定义的错误。如果对 ParamArray 参数使用 IsMissing,则函数总是返回 False。为了检测空的 ParamArray,可试看一下数组的上界是否小于它的下界。
      

  2.   

    本示例使用 IsMissing 函数检查是否把可选参数传送给用户自定义过程。请注意,除了 Variant 类型以外,其它皆可当作 Optional 参数的缺省值及类型。Dim ReturnValue
    ' 下列语句调用用户自定义函数。
    ReturnValue = ReturnTwice() ' 返回 Null。
    ReturnValue = ReturnTwice(2) ' 返回 4。' 函数过程定义。
    Function ReturnTwice(Optional A)
    If IsMissing(A) Then
    ' 如果参数丢失,则返回 Null。
    ReturnTwice = Null
    Else
    ' 如果参数出现,则返回两倍的值。
    ReturnTwice = A * 2
    End If
    End Funciton