将变量传递给函数并返回 VBA

Jun*_*ior 5 vba

试图了解如何将值从函数传递回子函数并在消息框中显示结果,但我无法得到它。我缺少什么学习代码如下:-

Sub mySend()

Dim myNum As Integer

myNum = InputBox("Enter number")

myReturn (myNum)

msgbox myReturn 'would like to display result in messagebox here but no joy

End Sub
'--------------------------------------
Function myReturn(ByRef myNum As Integer)

Dim myCalc As Integer

myCalc = myNum + 10

myReturn = myCalc

End Function
Run Code Online (Sandbox Code Playgroud)

Sam*_*Sam 4

不要使用ByRef参数 - 只需正确使用函数即可。

Sub mySend()

Dim myNum As Integer

myNum = InputBox("Enter number")

myNum = myReturn(myNum) '// You need to assign (=) the value to the variable

msgbox myNum

End Sub
'--------------------------------------
Function myReturn(number As Integer) As Integer '// Note the return type after the ()

Dim myCalc As Integer

myCalc = number + 10

myReturn = myCalc

End Function
Run Code Online (Sandbox Code Playgroud)

如果您想在示例中通过引用传递变量,那么您需要实际更改同一变量的值,否则当您在调用代码中再次引用它时,该值将不会更改:

(这是您修改的代码,以显示正确使用时 ByRef 的结果,我不建议实际使用此代码)

Sub mySend()

Dim myNum As Integer

myNum = InputBox("Enter number")

myReturn myNum '// No need for parentheses here

msgbox myNum

End Sub
'--------------------------------------
Function myReturn(ByRef myNum As Integer)

myNum = myNum + 10

End Function
Run Code Online (Sandbox Code Playgroud)