Private Sub fun1(s, m, n)
s = m + 1
m = n + 2
n = s + 3
End Sub
Private Sub Form_Click()
Dim x1, y1
x1 = 1
y1 = 1
z1 = 1
Call fun1(x1, y1 + 1, (z1))
Debug.Print x1; y1; z1
End Sub
为什么运行的结果是3,1,1。
我是一个初学者,请高手指点一下!!

解决方案 »

  1.   

    你试一下这段代码就知道奥秘在那里了Private Sub fun1(ByVal s, ByVal m, ByVal n)  '---注意我写函数的传递方式,VB默认是按传址,而不是传值
        s = m + 1
        m = n + 2
        n = s + 3
    End Sub
    Private Sub Form_Click()
        Dim x1, y1
        x1 = 1
        y1 = 1
        z1 = 1
        Call fun1(x1, y1 + 1, (z1))
        Debug.Print x1; y1; z1;
    End Sub你试一下这段代码就知道奥秘在那里了