找到两行之间的差异并突出显示差异,然后使用相同的代码遍历所有行

时间:2016-02-26 17:16:27

标签: excel vba

我设置一个宏来查找两行之间的差异,然后突出显示它们。我希望宏循环显示接下来的两行并执行相同的操作,然后继续直到没有更多的数据行(此数字一直变化)。因此,下一个选择将是行4:5,它将选择差异并突出显示它们,依此类推。这怎么可能?任何帮助是极大的赞赏。谢谢,

FindVariance Macro

Rows("2:3").Select
Range("A3").Activate
Selection.ColumnDifferences(ActiveCell).Select
With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 15773696
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
Range("F16").Select

End Sub

3 个答案:

答案 0 :(得分:0)

尝试:

SHGFI_USEFILEATTRIBUTES

答案 1 :(得分:0)

这是我的样本

Option Explicit
Sub FindVariance()
Dim last As Integer, i As Integer, r As Boolean
last = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, _
          SearchDirection:=xlPrevious).Row

For i = 2 To last
    If i Mod 2 = 0 Then
        Rows(i & ":" & i + 1).Select
        r = Selection.ColumnDifferences(ActiveCell).Select
        If r = True Then
            With Selection.Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .Color = 15773696
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
        End If
    End If
Next i
Range("F16").Select
End Sub

答案 2 :(得分:0)

这总是一个好习惯:

  • 使用对象引用并避免使用选择

    可能是欺骗和减慢代码

  • 使用范围的完整参考,直到工作簿。

    以避免指向不需要的活动工作表或工作簿!

所以这是我的代码

Sub FindVariance()
Dim j As Long
Dim nRows As Long

With ActiveSheet
    nRows = .Cells(.Rows.Count, 1).End(xlUp).Row

    For j = 2 To nRows Step 2
        With .Rows(j).Resize(2).ColumnDifferences(.Cells(j + 1, 1)).Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 15773696
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    Next j
End With

End Sub

并且还有一些工作要做,以便捕获并正确处理异常(行数不均匀,空行...)