Excel VBAselect活动单元格循环下面的单元格

我在Excel中是VBA的新手,想要使用Do While循环做一些格式化。

我想要做的是比较column1(这是名称)中的每个单元格中的值与其正下方的单元格。 如果名称匹配,我将自动进行一些计算。 如果它们不匹配,我希望循环继续向下,直到find下一个匹配。

我想循环比较A2到A3然后A3到A4等。

为此设置variables的最佳方法是什么? 我可以很好地计算macros,但由于某种原因,这个循环的基本组成部分正在让我的头受伤。

干杯

尽量避免依赖ActiveCell并使用直接寻址。 Range.Offset属性将允许您检查循环中当前行下一行的单元格。

With ActiveSheet '<- set this worksheet reference properly! For rw = 2 To .Cells(Rows.Count, 1).End(xlUp).Row - 1 If .Cells(rw, 1).Value = .Cells(rw, 1).Offset(1, 0).Value Then ' they are the same - do something End If Next rw End With 

在这种情况下,你可能希望select更简单,

  If .Cells(rw, 1).Value = .Cells(rw + 1, 1).Value Then 

请参阅如何避免使用Excel中的selectVBAmacros来获取更多的方法来摆脱依靠select和activate来实现您的目标。