请说明括号在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方法中的作用的主要内容,如果未能解决你的问题,请参考以下文章

请写出至少5个JDK已定义好的接口,并说明它们都有啥作用。

是否有用于TFS警报查询的括号值的列表或说明?

在c#中下面代码中中括号[ ]中的内容有啥作用?

什么是修饰符?它有什么作用?举例说明

python括号区别

花括号 在 SQL 查询中的作用是啥? [复制]