代码中的参数放置:方法与属性

时间:2013-07-30 23:06:08

标签: excel-vba vba excel

我只是想把规则直接放在我脑海里......

例如,使用METHOD(添加)我可以这样做:

Worksheets.Add After:=Worksheets(1)

...但是以下使用Property(Resize)会抛出错误:

Selection.Resize.Select ColumnSize:=4

考虑到这一点,这不是什么大问题:

Selection.Resize(ColumnSize:=4).Select

...或者其他几种方法可行,但我只是试图让我的头脑,如果有一个官方规则,声明你可以做一个参数的后放置(说快!)使用方法,但不能使用属性。

(我也很困惑为什么Resize是一个属性而不是一个方法,所以如果有人知道答案那将是一个奖励,但我想它并不重要)。

提前致谢。

1 个答案:

答案 0 :(得分:4)

当您编写Selection.Resize.Select ColumnSize:=4时,这是不合逻辑的,因为resize属性没有任何名为SelectSelect的成员(如果它存在)不接受参数名为ColumnSize

为什么Selection.Resize(ColumnSize:=4).Select有效是因为你基本上写了

Dim TempRange as Range
set TempRange = Selection.Resize(ColumnSize:=4)
TempRange.Select
Set TempRange = Nothing

但这一切都在一条线上。

与此相关的是由Eric Lippert撰写的关于VBA parantheses gotcha's的awesome article