子函数、子过程的可选参数
参数的使用
参数的使用对于过程和函数都是一样的。所以本节的内容对过程和函数都适用。
参数可分为可选参数和必选参数两种。必选参数在调用(过程或函数时)必须加上,否则会报错。可选参数则可写可不写。默认是必选参数,可选参数在定义时用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
作者QQ4577105