2014-12-02 100 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)。