我记得有个东西印象很深:
如:
dim tmpname as string
如果用byref去传的话,则会将string这一个结构类型都传过去了
如果用byval去传的话,则只将string类中的字串作为c形式的字符数组传过去所以api的宣称当中,如果需要传递字符串的地方,就得用byval而不能用byrefbyref常用于整体传递用type定义的类(结构体)。
如:
dim tmpname as string
如果用byref去传的话,则会将string这一个结构类型都传过去了
如果用byval去传的话,则只将string类中的字串作为c形式的字符数组传过去所以api的宣称当中,如果需要传递字符串的地方,就得用byval而不能用byrefbyref常用于整体传递用type定义的类(结构体)。
Private Sub Command1_Click()
y = 6
abc (y)
Debug.Print y
End SubSub abc( ByRef x As Integer)
x = x * 2
Debug.Print x
End Sub====RESULT====
x=12
2
VB参数缺省地使用Byref方式。
试试下面这两段程序的区别:
Dim y As Integer
Private Sub Command1_Click()
y = 6
abc y
Debug.Print y
End SubSub abc(ByVal x As Integer)
x = x * 2
Debug.Print x
End Sub----------------Dim y As Integer
Private Sub Command1_Click()
y = 6
abc y
Debug.Print y
End SubSub abc( x As Integer)
x = x * 2
Debug.Print x
End Sub