我在Word中有一个小的VBA宏,该宏无法编译为Expected:=错误。由于这些都是子例程,因此我不确定会导致什么。我已尽可能将其简化为下面列出的代码。
Sub test()
tmp = MsgBox("test")
test2("tmp2","tmp3") ' this is the line where the compile error appears.
End Sub
Sub test2(test1String As String, test2String As String)
MsgBox (test1String)
End Sub
我不希望任何简单的事情都会导致分配错误。输入代码,然后尝试运行测试宏。
答案 0 :(得分:0)
您正在调用Sub,而不是Function。语法
test2("tmp2","tmp3")
仅使用一个参数调用子test2
,即一个(无效的)表达式("tmp2","tmp3")
您应该称呼它为
test2 "tmp2","tmp3"
大括号(
和)
会在表达式中转换参数列表。
注意:同样,当在参数列表周围使用花括号调用函数时,需要分配函数结果,否则函数参数也将被视为表达式
i = myFunction(1, 2) ' valid
myFunction 1, 2 ' valid
myFunction(1, 2) ' invalid
mySub(1, 2) ' invalid
mySub 1, 2 ' valid
mySub(1 + 2), (3 + 4) ' valid!
最后一个示例使用两个自变量调用sub,这两个自变量都是表达式。