Private Sub Command1_Click() Dim i As Integer i = 1 MsgBox i xx (i) MsgBox i End SubPrivate Function xx(ByRef i As Integer) As Integer i = i + 1 xx = 1 End Function为什么调用函数XX后I的值没有改变呢,byRef不是按地址来传递的吗? 如果一个函数要返回多个值,该如何做呢?
这样就对了 Private Sub Command1_Click() Dim i As Integer i = 1 MsgBox i Call xx(i) '加一个Call MsgBox i End SubPrivate Function xx(ByRef i As Integer) As Integer i = i + 1 xx = 1 End Function
Private Sub Command1_Click() Dim i As Integer i = 1 MsgBox i MsgBox xx(i) End SubPrivate Function xx(ByRef i As Integer) As Integer i = i + 1 xx = i End Function
Private Sub Command1_Click()
Dim i As Integer
i = 1
MsgBox i
Call xx(i) '加一个Call
MsgBox i
End SubPrivate Function xx(ByRef i As Integer) As Integer
i = i + 1
xx = 1
End Function
Dim i As Integer
i = 1
MsgBox i
MsgBox xx(i)
End SubPrivate Function xx(ByRef i As Integer) As Integer
i = i + 1
xx = i
End Function