首页 > 解决方案 > 比较重复列中的单元格对Excel VBA

问题描述

你好,

提前感谢您的帮助

我在下面使用此代码在列中查找匹配值。我正在寻求帮助以执行以下操作:

下面的代码一次比较列中的所有单元格以查找从单元格 B3 开始并向下的匹配值,然后突出显示所有匹配的单元格。代码工作正常。但相反,我需要成对检查重复项,一次比较两个单元格而不是整个列,并且还需要以相反的列顺序从列中的底部单元格开始到顶部。

匹配过程的示例是:比较单元格 B10 = B9(如果它们匹配,则突出显示两者,如果不匹配,则移至下一对进行检查,B9 = B8,B8 = B7,依此类推)

Dim rg As Range

Set rg = Range("B3", Range("B3").End(xlDown))

Dim uv As UniqueValues

Set uv = rg.FormatConditions.AddUniqueValues

uv.DupeUnique = xlDuplicate

uv.Interior.Color = vbRed

谢谢

标签: excelvbacellhighlightmatching

解决方案


下面的代码运行良好。

偏移公式中的 -1 帮助我将当前单元格与前一个单元格进行比较(如相反顺序)

Dim rngMyCell As Range
    Dim wsMySheet As Worksheet
    
    Application.ScreenUpdating = False
    
    Set wsMySheet = ActiveSheet

    For Each rngMyCell In wsMySheet.Range("F3:F" & wsMySheet.Range("F" & Rows.Count).End(xlUp).Row)
        If Val(rngMyCell.Offset(-1, 0)) = Val(rngMyCell) Then
            wsMySheet.Range("F" & rngMyCell.Row & ":F" & rngMyCell.Row).Interior.Color = RGB(255, 255, 0)
        Else
            wsMySheet.Range("F" & rngMyCell.Row & ":F" & rngMyCell.Row).Interior.Color = xlNone
        End If
    Next rngMyCell
    
    Set wsMySheet = Nothing
    
    Application.ScreenUpdating = True

推荐阅读