Excel VBA选择活动单元循环

时间:2015-05-26 05:45:05

标签: excel vba excel-vba while-loop

我是excel的VBA新手,想要使用Do While循环来进行格式化。

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

我希望循环将A2与A3进行比较,然后将A3与A4等进行比较。

为此设置变量的最佳方法是什么?我可以很好地计算宏,但由于某种原因,循环的这个基本组件让我头痛。

欢呼声

1 个答案:

答案 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

相关问题