vba - 调用具有多个参数的子会导致编译错误
问题描述
将两个变量传递给另一个子时,我得到“编译错误:预期:=”。
在前面添加“void =”可以解决问题,但这是最佳实践似乎很奇怪。
不传递参数时使用括号将导致相同的编译错误。
Sub sub1()
sub2
sub2 ()
sub3 ("Hello World!")
sub4 ("Hello World!", "Hello World! Again!")
End Sub
Sub sub2()
MsgBox ("Hello World!")
End Sub
Sub sub3(text As String)
MsgBox (text)
End Sub
Sub sub4(text1 As String, text2 As String)
MsgBox (text1)
MsgBox (text2)
End Sub
解决方案
从它们不属于的地方删除括号。
Sub sub1()
sub2
sub2
sub3 "Hello World!"
sub4 "Hello World!", "Hello World! Again!"
End Sub
Sub sub2()
MsgBox "Hello World!"
End Sub
Sub sub3(text As String)
MsgBox text
End Sub
Sub sub4(text1 As String, text2 As String)
MsgBox text1
MsgBox text2
End Sub
看看您的示例中,VBA 如何在子例程名称和括号后添加一个空格?
sub2 ()
这是一个提示。正在发生的事情是您提供的两个字符串作为参数首先被评估,从而产生一个参数,然后它尝试将其传递给具有 2 个必需参数的子例程。
返回某些东西的函数需要用括号括起来参数,而子例程不需要(不能)。
推荐阅读
- c - 使用 errno 和 ftell() 来区分错误和成功
- javascript - 传单地图不运行鼠标事件
- ef-code-first - 使用 Sql Server Managment Studio 帮助编写 EF POCO 类的应用程序
- firebase - Firebase 部署错误 - 某些云功能区域无法访问,请稍后再试
- javascript - 根据选择选项更改数组
- firebase - 在 Flutter 中使用 Firebase 让孩子脱离快照
- typescript - 具有类型层次结构的抽象构造签名和实例化
- react-native - 在博览会上打开文档第三方应用程序如何反应原生?
- javascript - 销毁顶点图
- javascript - 从 RapidAPI 脚本中提取数据