2014-12-02 49 views
1

我无意中偶然发现了这个,并且一直没能在网上找到答案。 这两行相似的代码行给出了非常不同的结果。 我对R1C1版本很满意。你能帮我理解并命名对方吗? 非常感谢您的时间, 保罗细胞选择方法R1C1或?

Sub testcells() 

Cells(1, 2).Select 
Cells(1)(2).Select 

End Sub 

回答

1

正如Cells(1, 2)是简写: Cells.Item(1, 2)

所以Cells(1)(2)简写为:

Cells.Item(1).Item(2)

Cells.Item(1)返回范围A1,而第二项属性是相对于A1等你拿A2 。这是与使用: range("A1").Range("A2")

几件事情需要注意:

  1. 起始细胞并不一定是A1 - 例如,cells(2)(3) 指的是B3(第一步得到B1,然后3将您带到B3)
  2. 如果您只为Item属性指定一个数字,则结果 取决于原始范围的宽度,因为计数从 从左到右和从上到下排列。
+0

这就解释了它。非常感谢。 – Paul 2014-12-03 20:30:11

0

有趣的问题。不确定,只是我的观察(也许稍后有人会澄清更多):

Cells(1,2)是在rowindex,colindex,你可以。

Cells(1)(2)是在相应范围内的单元号1,其中垂直(行)偏移(对于向下单元,偏移类似于2,3,4 ...或对于向上单元为0,-1,-2,... )。如果没有前面的范围,Cells(1)(2)成为表1号电池,具有向下偏移1

摘要(而不是2!):

Cells(1,2)是B1和Cells(1)(2)是A2

有趣的部分:我曾尝试Cells(1)(2)()()..作品括号内的每个数字被视为与前一个数字的偏移量!当然除了第一个(1)。