VBA可选参数

VBA可选参数,vba,parameters,optional,Vba,Parameters,Optional,我正在Access中使用VBA。我想要一个有两个参数的过程——最后一个参数是可选的。 为什么Private Sub a()不能编译 如何在调用b()的情况下运行a(),并且不传递任何参数作为第二个参数?尾随的,打破了语法规则,忽略它: Private Sub a() b 1, End Sub Private Sub b(p1 As Variant, Optional p2 As Variant) Stop End Sub (或提供一个占位符b1,p2:)只要b1没有命令,b1就可

我正在Access中使用VBA。我想要一个有两个参数的过程——最后一个参数是可选的。 为什么Private Sub a()不能编译


如何在调用b()的情况下运行a(),并且不传递任何参数作为第二个参数?

尾随的
打破了语法规则,忽略它:

Private Sub a()
   b 1,
End Sub

Private Sub b(p1 As Variant, Optional p2 As Variant)
   Stop
End Sub

(或提供一个占位符
b1,p2:

只要
b1
没有命令,b1就可以工作,但问题是假设我希望有三个参数,最后两个参数是可选的,如果第三个(最后一个)参数丢失,它总是返回编译错误使用命名参数:
b1:=1
是的,好的,谢谢你私人Sub a()b p1:=1,p2:=1结束子专用子b(p1作为变量,可选p2作为变量,可选p3作为变量)停止结束子p3未在子a()中的任何位置提及,因此它缺失。不是B1,1,谢谢你,你能给我看一下sub a()和sub b()代码,最后一个参数缺失吗?非常感谢。
b 1