我经常看到VBA参数以四种不同的方式添加:
所以似乎有尺寸:
我可以随时使用任何方法吗?什么时候比另一个更合适
括号与否
通常,您在以下情况下使用括号:
1)将结果分配给变量:
正确:
Set rng = wks.Cells.Find("*", , , , xlByRows, xlPrevious)
Run Code Online (Sandbox Code Playgroud)
不正确:
Range("A1:A5").Copy (Destination:=Range("C1"))
Run Code Online (Sandbox Code Playgroud)
2)做一些结果:
wks.Cells.Find("*", , , , xlByRows, xlPrevious).Activate
Run Code Online (Sandbox Code Playgroud)
3)使用带Call关键字:
正确:
Call Range("A1:A5").Copy (Destination:=Range("C1"))
Run Code Online (Sandbox Code Playgroud)
不正确:
Call Range("A1:A5").Copy Destination:=Range("C1")
Run Code Online (Sandbox Code Playgroud)
在下列情况下不使用括号:
1)调用任何方法而不将结果赋给变量或使用result或使用Call关键字执行某些操作:
正确:
Range("A1:A5").Copy Destination:=Range("C1")
Run Code Online (Sandbox Code Playgroud)
不正确:
Call Range("A1:A5").Copy Destination:=Range("C1")
Range("A1:A5").Copy(Destination:=Range("C1"))
Run Code Online (Sandbox Code Playgroud)
label:=值或值
这个功能称为命名参数,非常方便.
使用命名参数的函数调用与常规函数调用的不同之处在于,通过将每个值与参数名称相关联来传递值,而不是提供有序的值列表.
当您调用具有可选参数的过程时,命名参数特别有用.如果使用命名参数,则不必包含逗号来表示缺少位置参数.使用命名参数可以更容易地跟踪您传递的参数以及省略的参数.在这里查看更多.
例如,Find方法有9个参数(需要1个,可选8个),如果要指定7th参数,则有两个选项:
选项1:
使用它的顺序设置它:
Set rng = wks.Cells.Find("*", , , , , , True)
Run Code Online (Sandbox Code Playgroud)
当你看到如上所述的代码时,很难理解其含义,True因为你应该计算这个参数的位置并查看文档以获取详细信息.
选项2:
使用命名参数设置它:
Set rng = wks.Cells.Find(What:="*", MatchCase:=True)
Run Code Online (Sandbox Code Playgroud)
这使您的代码更具可读性.
此外,使用命名参数时,您可以更改参数的顺序:
Set rng = wks.Cells.Find(MatchCase:=True, What:="*")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |