byVal:传值(你调用参数的时候传递的是该参数的值)
byRef:传址(你调用参数的时候传递的该参数的在内存中的地址)

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim a As Integer
    Dim b As Integer
    a = 10
    b = 20
    swap1 a, b
    Print "A1="; a, "B1="; ba = 10
    b = 20swap2 a, b
    Print "A1="; a, "B1="; b
    End Sub
    Public Sub swap1(ByVal x As Integer, ByVal y As Integer)
      Dim t As Integer
      t = x: x = y: y = t
    End SubPublic Sub swap2(x As Integer, y As Integer)
      Dim t As Integer
      t = x: x = y: y = t
    End Sub这是具体事例,加上楼顶兄弟讲的原理,你应该能看明白
    输出的值是不一样的