Optional ByVal B As Single  ===>  Optional ByVal B

解决方案 »

  1.   

    使用可选的参数
    在过程的参数列表中列入 Optional 关键字,就可以指定过程的参数为可选的。如果指定了可选参数,则参数表中此参数后面的其它参数也必是可选的,并且要用 Optional 关键字来声明。下面两段示例代码假定有一个窗体,其内有一命令按钮和一列表框。例如,这段代码提供所有可选参数:Dim strName As String
    Dim strAddress As StringSub ListText(Optional x As String, Optional y _
    As String)
       List1.AddItem x
       List1.AddItem y
    End SubPrivate Sub Command1_Click ()
       strName = "yourname"
     Optional 
       strAddress = 12345            '提供了两个参数。
       Call ListText (strName, strAddress)
    End Sub而下面的代码并未提供全部可选参数:Dim strName As String
    Dim varAddress As VariantSub ListText (x As String, Optional y As Variant)
       List1.AddItem x
       If Not IsMissing (y) Then
          List1.AddItem y
       End If
    End SubPrivate Sub Command1_Click ()
       strName = "yourname"            '未提供第二个参
                            '数。
       Call ListText (strName)
    End Sub在未提供某个可选参数时,实际上将该参数作为具有 Empty 值的变体来赋值。上例说明如何用 IsMissing 函数测试丢失的可选参数。提供可选参数的缺省值
    也可以给可选参数指定缺省值。在下例中,如果未将可选参数传递到函数过程,则返回一个缺省值。Sub ListText(x As String, Optional y As _
    Integer = 12345)
       List1.AddItem x
       List1.AddItem y
    End SubPrivate Sub Command1_Click ()
       strName = "yourname"   '未提供第二个参
                         '数。
       Call ListText (strName)   '添加“yourname”和
                            '“12345”。
    End Sub使用不定数量的参数
    一般说来,过程调用中的参数个数应等于过程说明的参数个数。可用 ParamArray 关键字指明,过程将接受任意个数的参数。于是可以这样来编写计算总和的 Sum 函数:Dim x As Integer
    Dim y As Integer
    Dim intSum As IntegerSub Sum (ParamArray intNums ())
       For Each x In intNums
          y = y + x
       Next x
       intSum = y
    End SubPrivate Sub Command1_Click ()
       Sum 1, 3, 5, 7, 8
       List1.AddItem intSum
    End Sub用命名的参数创建简单语句
    对许多内建函数、语句和方法,Visual Basic 提供了命名参数方法来快捷传递参数值。对命名参数,通过给命名参数赋值,就可按任意次序提供任意多参数。为此,键入命名参数,其后为冒号、等号和值 (MyArgument := "SomeValue") ,可以按任意次序安排这些赋值,它们之间用逗号分开。注意,下例中的参数顺序和所要参数的顺序相反:Function ListText (strName As String, Optional strAddress As String)
       List1.AddItem strName
       List2.AddItem strAddress
    End SubPrivate Sub Command1_Click ()
       ListText strAddress:=”12345”, strName:="Your Name"
    End Sub如果过程有若干不必总要指定的可选参数,则上述内容更为有用。确定对命名参数的支持
    要确定哪一个函数、语句和方法支持命名参数,用“代码”窗口中的“AutoQuickInfo”功能,检查“对象浏览器”,或者参阅语言参考。使用命名参数时要注意以下几点: 在 Visual Basic (VB) 对象库中的对象的方法不支持命名参数。而 Visual Basic for applications (VBA) 对象库中的所有的语言关键字都支持命名的参数。
    在语法中,命名参数是用粗体和斜体字表示的。所有其它参数只用斜体字表示。 
    重点 使用命名参数时不能省略所需参数的输入。可以只省略可选参数。对于 Visual Basic (VB) 和 Visual Basic for applications (VBA) 对象库,“对象浏览器”对话框将可选参数用方括号 [ ] 括起来。详细信息 请参阅语言参考中的 "ByVal"、"ByRef"、"Optional" 和 "ParamArray"。
      

  2.   

    To:=bruce_figo(管理员) ,确实可以,只是为什么呢?
    To:=dbcontrols(泰山__抛砖引玉) ,也谢谢你了,只是我也有MSDN,虽然说是盗版的,呵呵。
      

  3.   

    ismissing 判断optional 声明的参数时,参数必须为Variant类型