Sub a(ByRef m As Integer) m = m + 2Debug.Print m
End Sub
Private Sub Form_Load()
Dim t As Integer
t = 4
a (t)
Debug.Print t
End Sub执行结果:
6 4
我从书上看到的ByRef属于传地址,那为什么在Form_Load过程中打印t是4呢?不是对地址指向变量加2了么?
谢谢各位大侠。
End Sub
Private Sub Form_Load()
Dim t As Integer
t = 4
a (t)
Debug.Print t
End Sub执行结果:
6 4
我从书上看到的ByRef属于传地址,那为什么在Form_Load过程中打印t是4呢?不是对地址指向变量加2了么?
谢谢各位大侠。
解决方案 »
- 求助 VB如何 抓包 我想知道一个程序访问了那些网址
- VB的Form.ControlBox 问题,请大家帮帮忙
- 急啊,VB+ActiveReport2.0打包时,我怎么找不到Arpro2.dll这个文件?谁有activereport2.0下载吗?
- 在一個地方工作久了,想換個地方做做(頂就送分)
- 怎样将一个网站的目录复制到另外一个网站(或者FTP服务器)内
- 在多个字段里查询的难题
- 在Access中查询时间段[报错,高手们帮我看看]
- ##### hnlzh(吸海垂虹) ######请你进来
- DataReport连ADO时的问题?急
- 如何在ListView中动态添加一项项目????????????????
- 急求个BASIC!
- 关于ACCESS数据库数据查询的问题 急
m = m + 2
Debug.Print m
End Sub Private Sub Form_Load()
Dim t As Integer
t = 4
a t
Debug.Print t
End Sub 调用过程的两种常用写法是:
call a(t)
a t你写成了a (t),因为没有用call,这儿参数加上括号后变成了表达式,表达式是传值的,所以才有你问题的结果...
Private Sub Form_Load()
Dim t As Integer
t = 4
a (t) '开始进入sub a过程,进行加运算,可是t还是t=4,改得只是m值。 Debug.Print t
End Sub
Sub a(ByRef m As Integer) m = m + 2 '加运算。
Debug.Print m
End Sub