【发布时间】:2020-02-26 23:02:37
【问题描述】:
经过搜索,似乎没有人需要将 3+ 个参数传递给子例程。
据我所知,VBA 子例程(无效)最多只能有 2 个参数(尝试 3+ 时出错),函数(可以接受超过 2 个参数)必须返回一个值给调用它们的任何参数。
多年来,我一直在使用一些小技巧来解决这个问题,但想知道是否有更好的方法将 3+ 参数传递给 sub 或调用 void 函数。我目前所做的示例:
Private Function Foo(str1 as String, Optional str2 as string = "", Optional str3 as string = "") as Boolean
[Do something with parameters, like send an email with programmatic parameters 'to', 'body', and 'subject']
End Function
Public Sub Bar()
Dim dummyVal as Boolean
[Do something]
dummyVal = Foo("CustomerX@mail.com","Report [Today's Date]","Hello [Customer Name]...")
[Do something]
End Sub
这也可以通过使用来完成
If Foo(args) Then
End If
这些都工作,但如果有人试图阅读我的代码可能会感到困惑。有没有办法将 3+ 参数传递给 VBA 子程序,或者摆脱“dummyVal”语法?
【问题讨论】: