ByRef:
按地址传递(ByRef),是指主程序直接将数据交给子过程(过程中定义传递方式),在过程中修改、调试、返回给主程序,主程序输出的是修改后的值。
例如:如果我在参数中设为ByRef,那么ByRef的这个变量我可以改变它的值
ByVal:
按值传递(Byval),是指将主程序的值(副本一份)给子过程,过程对副本操作,主程序输出的仍是原值。若想输出值传递后的值,可在子过程中设置输出。
例如:如果我在参数中设为ByRef,那么ByRef的这个变量我不可以改变它的值,改变的只是它的副本,没有任何意义
下面是一个实例:
Sub
Test(
ByRef
a
As
Integer
,
ByVal
b
As
Integer
)
'注意,此处a是按地址传递,b是按值传递
a = 3
b = 4
End
Sub
'这里是主程序
Sub
Main()
Dim
a
As
Integer
Dim
b
As
Integer
a = 1
b = 2
Test(a, b)
MsgBox (
"a="
& a &
";b="
& b)
End
Sub
这说明,ByRef 可以改变传入的值,而ByVal不行
-----------------------------------
https://zhidao.baidu.com/question/584794997.html
-----------------------------------
https://zhidao.baidu.com/question/584794997.html
沒有留言:
張貼留言