将参数传递给模块私有函数/子

时间:2019-05-16 14:15:25

标签: vba

我正在尝试将两个数字传递给模块私有函数,并将该值作为和返回。

'In Module1
Private Function xSum(x As Double, y As Double) As Double
  xSum = x + y
End Function
'In Module2
Private Sub PrintSum()
  Debug.Print "Sum is: " & xSum(5, 5) 'Expected results 10
End Sub

1 个答案:

答案 0 :(得分:2)

从范围之外调用私有函数不是一个好主意,因为它们出于某种原因是私有的,原因不是要从任何地方调用,而是要从其中的特定模块调用他们住的地方。

无论如何,由于任何其他原因,Application.Run可以按预期的方式工作:

Private Sub PrintSum()
    Debug.Print "Sum is: " & Application.Run("Modul1.xSum", 5, 5)
End Sub

函数名称以逗号分隔,参数用逗号分隔:

enter image description here