需要查看两个单元格之间的不同文本

时间:2018-04-10 00:09:25

标签: vba excel-formula

在Excel中我有

  • Column A(地址:示例POBOX1234ATLANTAGA30374
  • Column B(地址:示例POBOX2345ATLANTAGA30384

我需要制作一个显示两者之间差异的Column C

例如,将12347突出显示为不同的字体颜色。我愿意接受任何关于如何做的想法。

2 个答案:

答案 0 :(得分:4)

这应该可以解决问题:

Sub CompareCells(c1 As Range, c2 As Range)
    Dim p As Long
    If c1.Cells.Count + c2.Cells.Count <> 2 Then _
        MsgBox "Must specify two single cells.": Exit Sub
    For p = 1 To IIf(Len(c2) < Len(c1), Len(c2), Len(c1))
        If Mid(c1, p, 1) <> Mid(c2, p, 1) Then c2.Characters(p, 1).Font.Color = vbRed
    Next p
End Sub

如果您的值在 A1 A2 的单元格中,您可以像这样使用它:

CompareCells [a1], [a2]

screenshot

答案 1 :(得分:0)

Sub CompareInColor()

ActiveSheet.Range("C1").Value = ActiveSheet.Range("A1").Value

For i = 1 To Len(ActiveSheet.Range("A1").Value)
    If (ActiveSheet.Range("A1").Characters(i, 1).Text <> ActiveSheet.Range("B1").Characters(i, 1).Text) Then
        ActiveSheet.Range("C1").Characters(i, 1).Font.Color = RGB(255, 0, 0)
End If
Next i

End Sub

Sub CompareInColorFlip()

ActiveSheet.Range("D1").Value = ActiveSheet.Range("B1").Value

For i = 1 To Len(ActiveSheet.Range("B1").Value)
    If (ActiveSheet.Range("B1").Characters(i, 1).Text <> ActiveSheet.Range("A1").Characters(i, 1).Text) Then
        ActiveSheet.Range("D1").Characters(i, 1).Font.Color = RGB(255, 0, 0)
End If
Next i

End Sub

仅比较A1B1 ...如果您有很多行,请循环显示您的行。另外,我假设A1A2的长度相同,否则可能会出现超出范围的索引错误。