Private Sub Command1_Click()
Dim s As String
Call A(s)
Debug.Print s
End SubFunction A(s As String) As Integer
s = "aaa"
A = Len(s)
End Function用上面的代码,s返回为aaa,当将call A(s)改为A(s)时,s返回NULL
为什么值不能返回啊,s缺省为byref!
Dim s As String
Call A(s)
Debug.Print s
End SubFunction A(s As String) As Integer
s = "aaa"
A = Len(s)
End Function用上面的代码,s返回为aaa,当将call A(s)改为A(s)时,s返回NULL
为什么值不能返回啊,s缺省为byref!
解决方案 »
- SQL语句查询记录集的数量是什么命令?
- 有没有好的进度条
- DataGrid控件怎样让他在单击的时候显示所选行的内容?
- 请教一下各位高手:如何用VB实现查看某台远程电脑的内定内存使用情况,以及重新启动远程电脑?谢谢
- 如何让Windows Media Player控件实现循环播放?Windows Media Player控件可以播放现成的播放列表吗?
- 怎么用程序打开一张网页,并且使其处于预览状态阿,请各位高手解答
- vb6.0 如何处理C#的list对像
- 有做安装程序的软件么?
- 各位高手,网络通信得问题
- VB到底能不能直接编译出二进制的EXE文件?VB中的“本地代码”是怎么一回事?
- tcp和UDP有什么不同啊
- 求助:怎么把这一小段代码转成VB啊?
aaa
aaa
aaa
aaa
Dim ss As String
ss = "AAA" Label1.Caption = A(ss)
End SubFunction A(s As String) As Integer A = Len(s)
End Function楼主区分一下function和sub的区别吧!!!
按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在 Visual Basic 中是缺省的。如果给按地址传递参数指定数据类型,就必须将这种类型的值传给参数。可以给参数传递一个表达式,而不是数据类型。Visual Basic 计算表达式,如果可能的话,还会按要求的类型将值传递给参数。**把变量转换成表达式的最简单的方法就是把它放在括号内。**例如,为了把声明为整数的变量传递给过程,该过程以字符串为参数,则可以用下面的语句:Sub CallingProcedure ()
Dim intX As Integer
intX = 12 * 3
Foo (intX)
End SubSub Foo (Bar As String)
MsgBox Bar 'Bar 的值为字符串‘ 36 ’。
End Sub最后,纠正你的说法,s 返回的不是 Null,而是空串。
我用varptr函数看了一下地址值
感谢of123!