如何比较两列之间的字符,并使用宏突出显示相同的单元格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何比较两列之间的字符,并使用宏突出显示相同的单元格相关的知识,希望对你有一定的参考价值。

我需要你的帮助来比较每个单元格字符的两列。对于A2数据单元格中的示例,我有一个RA_R3D_CS,我需要获取R3D并将其与B2列(R3D-172)值前三个字符进行比较,如果两者相同,我需要在绿色上突出显示它,如果不是我想要的话在RED上突出显示它。

以同样的方式,我必须比较剩下这个,所以请给我一个可行的解决方案来解决这个问题。

提前致谢。

我尝试了下面的代码,但我没有得到确切的输出。

Sub compare_cols()

    'Get the last row
    Dim Report As Worksheet
    Dim i As Integer, j As Integer
    Dim lastRow As Integer

    Set Report = Excel.Worksheets("Sheet1") 'You could also use Excel.ActiveSheet _
                                            if you always want this to run on the current sheet.

    lastRow = Report.UsedRange.Rows.Count

    Application.ScreenUpdating = False

    For i = 2 To lastRow
        For j = 2 To lastRow
            If Report.Cells(i, 1).Value <> "" Then 'This will omit blank cells at the end (in the event that the column lengths are not equal.
                If InStr(1, Report.Cells(j, 2).Value, Report.Cells(i, 1).Value, vbTextCompare) > 0 Then
                    'You may notice in the above instr statement, I have used vbTextCompare instead of its numerical value, _
                    I find this much more reliable.
                    Report.Cells(i, 1).Interior.Color = RGB(255, 255, 255) 'White background
                    Report.Cells(i, 1).Font.Color = RGB(0, 0, 0) 'Black font color
                    Exit For
                Else
                    Report.Cells(i, 1).Interior.Color = RGB(156, 0, 6) 'Dark red background
                    Report.Cells(i, 1).Font.Color = RGB(255, 199, 206) 'Light red font color
                End If
            End If
        Next j
    Next i

    'Now I use the same code for the second column, and just switch the column numbers.
    For i = 2 To lastRow
        For j = 2 To lastRow
            If Report.Cells(i, 2).Value <> "" Then
                If InStr(1, Report.Cells(j, 1).Value, Report.Cells(i, 2).Value, vbTextCompare) > 0 Then
                    Report.Cells(i, 2).Interior.Color = RGB(255, 255, 255) 'White background
                    Report.Cells(i, 2).Font.Color = RGB(0, 0, 0) 'Black font color
                    Exit For
                Else
                    Report.Cells(i, 2).Interior.Color = RGB(156, 0, 6) 'Dark red background
                    Report.Cells(i, 2).Font.Color = RGB(255, 199, 206) 'Light red font color
                End If
            End If
        Next j
    Next i

Application.ScreenUpdating = True

End Sub
答案

Solution without VBA

想象一下下表(B列也可以在另一个工作表中)

enter image description here

使用以下公式为范围A1:B3添加conditional formatting ...

=left($A1,3)=left($B1,3)

...并获得以下结果,标记在开头的绿色中具有相同3个字符的项目。

enter image description here

更多关于Conditional Formatting

以上是关于如何比较两列之间的字符,并使用宏突出显示相同的单元格的主要内容,如果未能解决你的问题,请参考以下文章

wps如何突出显示两列数据的重复项,而同列中重复数据不突出显示?

excel中比较两列数据是否相同,并标上颜色

如何比较ag-grid中的行

Excel 公式或规则或 vba 比较 2 个单元格并仅突出显示差异

Excel对比数据 两列数据,如何将相同的数值的背景色设置成相同的。

如何比较excel两列数据是否相同