You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA调用多参数子程序报Compile Error: Expected = 解决方案问询

错误原因

该编译错误由VBA的Sub过程调用语法规则导致:

  • 调用无返回值的Sub子程序时,如果不使用Call关键字,禁止将整个参数列表用括号包裹。
  • 你之前单参数场景Check1(4)能正常运行属于特殊情况:此时VBA会将(4)识别为单个表达式先求值再传入,而非将括号作为参数列表的包裹标识,当参数超过1个时,括号内的多参数无法被识别为单个合法表达式,因此触发编译错误。

两种正确调用多参数Sub的方式

方式1:不使用Call关键字,去掉参数外层括号

Sub Check2(x As Integer, y As Integer)
Debug.Print x & y
End Sub

Sub Play2()
Check2 4, 3
End Sub
' 输出结果:43

方式2:搭配Call关键字,保留参数外层括号

如果习惯用括号包裹参数列表,只需在调用前加Call关键字即可:

Sub Check2(x As Integer, y As Integer)
Debug.Print x & y
End Sub

Sub Play2()
Call Check2(4, 3)
End Sub
' 输出结果:43

补充说明

如果是调用有返回值的Function函数,当你需要接收返回值时,必须用括号包裹参数列表,例如res = MyFunction(1, 2);如果不需要接收返回值直接调用Function,语法规则和Sub一致。

内容的提问来源于stack exchange,提问作者Bhavesh Shaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 15:24:03