Jam*_*och 28
啊哈.我一直想知道这个,甚至在VBA上阅读一本2英寸厚的书基本上都说不要使用它,除非你想使用VBE 的Find功能轻松地在大型项目中查找调用.
但我刚发现另一种用途.
我们知道可以用冒号字符连接代码行,例如:
Function Test(mode as Boolean)
if mode = True then x = x + 1 : Exit Sub
y = y - 1
End Sub
Run Code Online (Sandbox Code Playgroud)
但是如果你在行的开头用过程调用来执行此操作,则VBE假定您引用了一个标签并删除了任何缩进,将该行与左边距对齐(即使该过程按预期调用):
Function Test()
Function1 : Function2
End Function
Run Code Online (Sandbox Code Playgroud)
使用Call语句允许在保持代码缩进的同时连接过程调用:
Function Test()
Call Function1 : Call Function2
End Function
Run Code Online (Sandbox Code Playgroud)
如果你不使用上面例子中的Call语句,VBE将假定"Function1"是一个标签,并在代码窗口中保持对齐,即使它不会导致错误.
Mar*_*urd 11
对于VB6,如果有可能将它转换为VB.NET,使用Call
意味着语法不会改变.(在VB.NET中需要使用括号进行方法调用.)(我个人认为这不值得这么做 - 任何.NET转换器至少能够在需要时放入括号.我只是将其列为一个原因.)
否则它只是语法糖.
注意,Call
当调用其他方法/函数时,关键字可能不会更快,因为函数无论如何都返回它的值,并且VB不需要创建一个局部变量来接收它,即使Call
没有使用它也是如此.
Nic*_*zer 10
我总是Call
在VBA中使用.对我来说,它看起来更干净.但是,我同意,这只是语法糖,这正是个人偏好的范畴.在过去的几年里,我遇到了大约十几个全职VBA球员,并没有使用其中一个Call
.这有一个额外的好处,我总是知道哪些代码是我的.:p
归档时间: |
|
查看次数: |
21932 次 |
最近记录: |