我正在编写一些VBA,以进一步了解Byref和Byval。这就是我正在使用的:
Private Function Checkcase()
Dim i As Integer
i = 1
Debug.Print i
num(i)
Debug.Print i
End Function
Public Function num(ByRef i As Integer)
i = 5
End Function
输出
1
1
但是,当我call
在num(i)
like前面使用关键字时:
call num(i)
输出变为
1
5
我在两种情况下都期望输出为1和5,因为我正在更改变量i的引用。
num(i)
这是错误。当您在没有获得返回值的情况下调用子函数或函数时,切勿在参数周围加上括号。
当您将带有括号的参数传递给需要参数的函数时ByRef
,这些参数将自动转换为ByVal
。
使用Call num(i)
或删除括号num i
参考:致电:
如果省略Call关键字,则还必须省略argumentslist的括号。
一如既往,Cpearson网站是必读
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句