【问题标题】:Passing optional arguments "by Value" in VBA在 VBA 中“按值”传递可选参数
【发布时间】:2021-02-06 15:21:28
【问题描述】:

在 VBA 中,如果我想传递一个可选参数 ByVal(主要参见 Var2,其他变量只是为了确保它在“复杂”参数集中工作但也应该工作):

Sub Test(Var1 As String, Optional ByVal Var2 As String, Optional Var3 As String)

    'Var1 should be passed ByRef (NOT optional) (ByRef through "default behaviour")
    'Var2 should be passed ByVal (optional) (ByVal through specific notation)
    'Var3 should be passed ByRef (optional) (ByRef through "default behaviour")

    End Sub

我只找到了一个reference for VB,它对 VBA 是否同样适用?

注意:我当然测试过它并且测试有效,others use it as well,我只是想确保我不会遇到其他实例的问题。

【问题讨论】:

  • 您预计会出现什么问题?指定ByVal 是一种很好的做法。 Optional 在这里是一个红鲱鱼。
  • 明确说明隐含的ByRef 可能也是一个好主意。
  • 我没有找到按值传递的 可选 参数的“官方”VBA 参考,所以我认为符号 Optional ByVal VARNAME 是正确的,只是想再看一下验证。
  • @Albin 你的语法是正确的。

标签: vba optional-arguments


【解决方案1】:

不知道“复杂参数集”可能是什么,但它会按照官方记录的方式工作:

Function Statement Syntax

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多