脚本宝典收集整理的这篇文章主要介绍了VBA中传递参数方式 byval(副本), byref(共有变量),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Sub ByRefByVal() Dim A As Integer, B As Integer A = 1 B = 2 VARPtr (A) VarPtr (B) Call AAA(A, B) Debug.PRint A, B Call BBB(A, B) Debug.Print A, B End Sub
Sub BBB(ByRef Abbb As Integer, ByRef Bbbb As Integer) Abbb = Abbb + 1 VarPtr (Abbb) Bbbb = Bbbb + 1 VarPtr (Bbbb) End Sub
Sub AAA(ByVal Aaaa As Integer, ByVal Baaa As Integer) Aaaa = Aaaa + 1 VarPtr (Aaaa) Baaa = Baaa + 1 VarPtr (Baaa) End Sub
其中,call BBB(A,B)后,A=2,B=3
值传递,相当于传的是一个副本,对于副本的操作不影响正本
值传递只是将变量的内容复制一份而已,函数进行操作的其实是另一个变量,只是另一个变量的值和传递的变量值是相同的。 而地址传递是直接把变量的地址传递给函数,这时函数是直接对原来的变量进行操作的。所以值会变化。 举例说吧:值传递就相当于克隆了一个同样的变量,操作的是克隆出来的那个,原来的变量没有变化,但是地址传递是直接对原来的变量进行操作,没有克隆新的变量。。。懂了吧,,, 也可以这样理解:比如要考试了,你有一份复习题,值传递就相当于别人借你的试卷去复印,然后在复印的那份上面做笔记,而地址传递就是别人直接在你原有的试卷上做笔记,没有复印,所以等你拿回来你会发现自己的试卷乱七八糟的,,,这下应该懂了哦。。。
以上是脚本宝典为你收集整理的VBA中传递参数方式 byval(副本), byref(共有变量)全部内容,希望文章能够帮你解决VBA中传递参数方式 byval(副本), byref(共有变量)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。