子函数、子过程的可选参数

参数的使用

参数的使用对于过程和函数都是一样的。所以本节的内容对过程和函数都适用。

参数可分为可选参数和必选参数两种。必选参数在调用(过程或函数时)必须加上,否则会报错。可选参数则可写可不写。默认是必选参数,可选参数在定义时用Optional关键字声明,并且可选参数必须放在参数列表的最后面。

必选参数

这里不再介绍

可选参数

 可选参数的定义与调用

格式与必选参数类似,只是在参数名前面用Optional声明参数是可选的。

Optional 参数名 As 参数类型

 例如:

Sub sub_test(Optional s As String)
    Debug.Print s
End Sub

在调用上述过程时,可以不传入参数,此时则不会输出任何东西,也不会报错,因为参数是可选的。如果传入了参数,则会输出这个参数。

可选参数还可以设置默认值,即如果在调用时不显式传入这个参数的话,那么就使用定义时所使用的值。如下过程:

Sub sub_test(Optional s As String = "Hello, World")
    Debug.Print s
End Sub

 同时使用可选参数与必选参数

此时可选参数必须放在最后 

Sub sub_test(var As Integer, Optional s As String = "Hello, World")
    Debug.Print var
    Debug.Print s
End Sub

注意:var并非必须写

只传入必选参数:

Sub test()
    Call sub_test(50)
End Sub

输出:

50

Hello, World

同时传入可选参数与必选参数:

Sub test()
   Call sub_test(50, "Hi, Meinv")
End Sub

输出:

50

Hi, Meinv

参数不按照顺序的调用

带参数名的传递参数语法如下:
[参数名]:=[实际参数值]
参数名后写冒号等号(:=),再写需传递的参数值。看实际的例子,以下三种方式是等效的。

'主入口
Sub Main()
    CustomLog 100, 10 '方式一
    CustomLog num:=100, base:=10 '方式二
    CustomLog base:=10, num:=100 '方式三
End Sub

 

posted @ 2023-06-19 16:44  iZJ"Qq4577105  阅读(13)  评论(0编辑  收藏  举报