vb 子程序参数ByVal是什么意思?

例如
Private sub A(ByVal i As long)
...
End Sub

是什么意思?

比如:
sub a1(byval i as long)
i=20
end sub

sub a2(byref i as long)
i=20
end sub

dim x,y
x=10
a1 x

'由于是值引用,只是将10这个值传入了函数a1内,执行函数后x依然=10
a2 x

'由于是地址引用,穿进去的是x这个变量的地址,执行函数后,“这个内存地址的值”变成了20,显然,函数外的x,其值也变成了20
....追问

还是看不懂。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-07
byval 表示传值(此处可以用数值和变量,如为变量,实际仍然传的是此变量的值),byref 表示传地址(此处只用是变量,且过程中改变变量值,会传递给主过程)本回答被网友采纳