有一种方法可以告诉一个细胞在另一个细胞的下面吗?

我正在使用Excel VBA,我试图做一个循环,直到我处理的范围超出了一些其他预先定义的范围。

例如,我将范围设置为一个范围range("A10000") ,我想循环一列,直到通过该点。

下面是我想要的Psudo代码。

 dim myRange as range dim maxRange as range do while myRange < maxRange ' do something ' range.address = range.address next one '(range("a450") becomes range("a451")) end while 

编辑:我明确寻找比较终止循环的原因是因为我不能假设一个明确的空间,我可以做一个直接循环在每个单元格。

这是你正在尝试做什么?

 Public Sub TEST() Dim myRange As Range Dim maxRange As Range Dim i as Integer Set myRange = Sheets(1).Range("A2") Set maxRange = Sheets(1).Range("A5") Do While myRange.Row < maxRange.Row ' do something ' range.address = range.address next one '(range("a450") becomes range("a451")) i = myRange.Row + 1 Set myRange = Sheets(1).Range("A" & i) Loop End Sub 

虽然爱德华的答案似乎是一个完全合理的方法来解决这个挑战( Range.row应该让你到你要去的地方),当我需要对Range对象进行操作,并有一个非常明确的空间,我达到了For Each Cell in Range构造。

这是一个小例子:

 Dim rngTarget As Range, rngCell As Range Set rngTarget = Sheets(1).Range("A2:A10000") For Each rngCell In rngTarget 'do cool stuff to rngCell Next rngCell 

在那里,你有它! 我特别喜欢这种方法,因为它是简洁的,不用杂乱的列/行来处理x和y方向上的移动,并且容易读取。