1,502
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Sub test(a As Integer, ByRef b As Integer, ByVal c As Integer, ByRef d As Integer)
Debug.Print "函数内部入参值:"; a; b; c; d
a = a + 1
b = b + 2
c = c + 3
Dim d1 As Integer
d1 = d
d1 = d1 + 4
Debug.Print "函数内部处理后:"; a; b; c; d; "函数内部d1:"; d1
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, d As Integer
a = 100: b = 200: c = 300: d = 400
Debug.Print "函数调用前入参值:"; a; b; c; d
test a, b, c, d
Debug.Print "函数调用后入参值:"; a; b; c; d
'a默认byref 会变,b显式声明byref会变,C 显式声明byval不会变 ,d声明byref但使用了函数内部变量复制了一份数据进行处理,而没有改变入参地址上的数据
End Sub
Option Explicit
Private Sub test(a As Integer, ByRef b As Integer, ByVal c As Integer, ByRef d As Integer)
Debug.Print "函数内部入参值:"; a; b; c; d
a = a + 1
b = b + 2
c = c + 3
Dim d1 As Integer
d1 = d
d1 = d1 + 4
Debug.Print "函数内部处理后:"; a; b; c; d; "函数内部d1:"; d1
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, d As Integer
a = 100: b = 200: c = 300: d = 400
Debug.Print "函数调用前入参值:"; a; b; c; d
test a, b, c, d
Debug.Print "函数调用后入参值:"; a; b; c; d
'a默认byref 会变,b显式声明byref会变,C 显式声明byval不会变 ,d声明byref但使用了函数内部变量复制了一份数据进行处理,而没有改变入参地址上的数据
End Sub
[/quote]