仅关于在 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。我找不到任何地方解释为什么在括号中传递参数或使用 ':=" 时存在差异。有人知道为什么吗?