Excel VBA子过程可选参数调用报错:编译错误Expected: =
VBA可选参数子过程调用错误解决
你的问题出在调用Sub过程的语法上:
- VBA中调用
Sub时,如果直接用括号包裹多个参数,VBA会把括号内的内容当成单个表达式来处理,而不是多个独立参数。这就导致编译器误以为你是要调用一个有返回值的函数并试图赋值,所以弹出"Compile Error: Expected: ="的提示。
解决方法有两种:
- 去掉参数外的括号,直接传递参数:
Public Sub Test() TestMethod 1, 2 ' 正确调用 End Sub
- 如果习惯用括号传递参数,给调用语句加上
Call关键字:
Public Sub Test() Call TestMethod(1, 2) ' 正确调用 End Sub
补充说明:如果是调用有返回值的Function函数,用括号包裹参数是正常语法;但Sub过程没有返回值,直接用括号包裹多参数就会触发语法错误。
内容的提问来源于stack exchange,提问作者ROBERT RICHARDSON
相关产品推荐
相关产品推荐

