细胞选择方法R1C1或?

时间:2014-12-02 03:46:45

标签: excel-vba vba excel

我无意中偶然发现了这一点,但却未能在网上找到答案。 这两个相似的代码行给出了截然不同的结果。 我很喜欢R1C1版本。你能帮我理解并命名另一个吗? 非常感谢你的时间, 保罗

Sub testcells()

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

End Sub

2 个答案:

答案 0 :(得分:1)

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

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

Cells.Item(1).Item(2)

Cells.Item(1)返回范围A1,第二个Item属性相对于A1,因此得到A2。它与使用相同: range("A1").Range("A2")

有几点需要注意:

  1. 起始单元格不必是A1 - 例如,cells(2)(3) 是指B3(第一步获得B1,然后3将你带到B3)
  2. 如果只为Item属性指定一个数字,则为结果 取决于计数的来源,原始范围的宽度 从左到右,从上到下。

答案 1 :(得分: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)。