为什么一个结果是0,一个是10?
第一段:
Private Sub Form_Click()
Dim a As Integer
For i = 1 To 10
Call abcd(a)
Next i
Print a
End Sub
Sub abcd(ByVal x)
x = x + 1
End Sub
第二段:
Private Sub Form_Click()
Dim a As Integer
For i = 1 To 10
Call abcd(a)
Next i
Print a
End Sub
Sub abcd(x)
x = x + 1
End Sub
byval是把内存数值的拷贝给程序,所以改变的只是拷贝,内存原来的值是不会改变的。
第一个a的值并没有变化。









