如何在VBA过程中使用可选的数组参数?

Seb*_*ian 8 parameters vba default optional

我在MS Access的VBA脚本中有一个私有过程:

Private Sub drawLineDiagram(chartSpace As Variant, title As String, caption As String, x_val() As Variant, y_val() As Variant, Optional y_val2() As Variant = ????)

如您所见,我希望为值数组提供可选的最后一个参数.

我必须分配什么样的默认参数?如果我用一个可选的整数值来做它并指定它,例如0就可以了.

如果我使用如上所示的数组并分配一个数组,该行被标记为red =>作为错误(并且它将不会编译).

GSe*_*erg 11

如果您需要VBA中的可选数组,请将其声明为Variant没有数组指定程序,但无论如何都要将其作为数组访问.这样你得到一个Variant(单个变量),它包含一个Variants 数组,而不是Variants 数组.无需默认值:

Private Sub drawLineDiagram(chartSpace As Variant, title As String, caption As String, x_val As Variant, y_val As Variant, Optional y_val2 As Variant)
Run Code Online (Sandbox Code Playgroud)

为了保持一致性,还将Variant其他两个参数声明为plain s.

如果您讨厌IDE,请不要使用它.使用记事本.然后粘贴编写的代码.


Fio*_*ala 5

也许你想要一个参数数组:

在过程声明中,以正常方式定义参数列表.必须要求除最后一个参数之外的所有参数(不是可选(Visual Basic)).

使用关键字ByVal ParamArray在最后一个参数名称前面.此参数自动可选.不要包含Optional关键字.

- 如何:重载一个采用无限数量的参数的过程(Visual Basic)

VBA参考:了解参数数组