我是excel的VBA新手,想要使用Do While循环来进行格式化。
我想要做的是将column1中每个单元格(名称)中的值与其正下方的单元格进行比较。如果名称匹配,我将自动进行一些计算。如果它们不匹配,我希望循环继续沿着列向下,直到它找到下一个匹配。
我希望循环将A2与A3进行比较,然后将A3与A4等进行比较。
为此设置变量的最佳方法是什么?我可以很好地计算宏,但由于某种原因,循环的这个基本组件让我头痛。
欢呼声
答案 0 :(得分:2)
尽量避免依赖 ActiveCell 并使用直接寻址。 Range.Offset property将允许您检查循环中当前开启下方一行的单元格。
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
在这种情况下,您可能希望选择更简单的
If .Cells(rw, 1).Value = .Cells(rw + 1, 1).Value Then
有关远离依赖选择和激活以实现目标的更多方法,请参阅How to avoid using Select in Excel VBA macros。