请说明括号在worksheet.add方法中的作用
Posted
技术标签:
【中文标题】请说明括号在worksheet.add方法中的作用【英文标题】:Please explain the role of parenthesis in worksheet.add method 【发布时间】:2017-08-19 16:40:18 【问题描述】:在编写这段代码时
Worksheets.Add after:=Worksheets(Worksheets.Count)
VBA 在 ADD 方法之后提供左括号选项。但是如果我附上
after:=Worksheets(Worksheets.Count)
括号中的表示错误。
为什么?
【问题讨论】:
What is behind this difference in parentheses effect in VBA?的可能重复 Why aren't parentheses required for add method of dictionary class?的可能重复 正如我在上面引用的 SO 问题中提到的,我最喜欢的讨论是 Daily Dose of Excel post。 感谢大家的帮助 【参考方案1】:一种用途是即时设置变量。
dim nuws as worksheet
set nuws = Worksheets.Add(after:=Worksheets(Worksheets.Count))
因为你正在对返回的值做一些事情(例如将其设置为 var),所以参数必须放在括号中。
另一个用途是内联重命名新工作表。
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "New WS"
同样,因为您正在对新创建的对象执行某些操作(例如命名),所以参数必须放在括号中。
【讨论】:
【参考方案2】:调用 Worksheets.Add 作为子。没有错误。
Worksheets.Add after:=Worksheets(Worksheets.Count)
将 Worksheets.Add 作为函数调用,但不使用返回值。产生错误。基本上,您是在告诉它返回一个值,但没有给它存储该值的地方。
Worksheets.Add(after:=Worksheets(Worksheets.Count))
调用 Worksheets.Add 作为函数并忽略返回值。没有错误。
Call Worksheets.Add(after:=Worksheets(Worksheets.Count))
调用 Worksheets.Add 作为函数并捕获返回值。没有错误。
SomeVar = Worksheets.Add(after:=Worksheets(Worksheets.Count))
【讨论】:
以上是关于请说明括号在worksheet.add方法中的作用的主要内容,如果未能解决你的问题,请参考以下文章