1

仅关于在 vba 中传递参数,如果参数在括号中传递而不是使用 ':=' 明确说明它们,ByRef 的行为似乎有所不同,例如:

Sub CallingProcedure()
    Dim a As Long
    a = 123
    CalledProcedure (a)
    MsgBox (a)
    CalledProcedure x:=a
    MsgBox (a)
End Sub

Sub CalledProcedure(ByRef x As Long)
    x = 321
End Sub

第一个 MessageBox 将显示 123,而第二个将显示 321。我找不到任何地方解释为什么在括号中传递参数或使用 ':=" 时存在差异。有人知道为什么吗?

4

0 回答 0