比方说,我有以下代码时:遍历的单元格区域中的每个单元赋予了Range对象
Sub TestRangeLoop()
Dim rng As Range
Set rng = Range("A1:A6")
''//Insert code to loop through rng here
End Sub
我希望能够通过Range
对象为规定的各单元的集合迭代rng
。从概念上讲,我想做到这一点,像这样:
For Each rngCell As Range in rng
''//Do something with rngCell
Next
我知道我可以通过解析rng.Address
和手动构建Range
对象解决这个问题,但我希望有,不涉及一个更直接的方式字符串解析。
这个工作完美,但我为此感到诧异,因为'Cells'只是一个'Range'对象。事实上,我从'For Each'行的'rRng'中删除了'.Cells',它仍然有效。 'Range'如何让它看起来像是'Range'的集合?非常感谢你的帮助! – 2010-10-06 18:25:19
http://www.dailydoseofexcel.com/archives/2004/07/07/the-strange-object/ Cells属性是此上下文中的默认属性,所以这就是没有它的原因。在其他上下文中,Value属性是默认属性。所有Range对象都是包含Range对象的集合对象 - 我想是无限的。范围是一个绝对奇怪的对象,并且每次都打破对象/对象收集范例。但在大多数情况下,它只是起作用。 :) – 2010-10-06 19:46:50
感谢您的额外见解。我希望在大约4年前,当我开始进行VBA编程时,我已经了解到“这只适用于”Range .-)。 – 2010-10-07 01:21:37