如何比较两列之间的字符,并使用宏突出显示相同的单元格
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列也可以在另一个工作表中)
使用以下公式为范围A1:B3添加conditional formatting ...
=left($A1,3)=left($B1,3)
...并获得以下结果,标记在开头的绿色中具有相同3个字符的项目。
以上是关于如何比较两列之间的字符,并使用宏突出显示相同的单元格的主要内容,如果未能解决你的问题,请参考以下文章
wps如何突出显示两列数据的重复项,而同列中重复数据不突出显示?
Excel 公式或规则或 vba 比较 2 个单元格并仅突出显示差异