在Excel中我有
Column A
(地址:示例POBOX1234ATLANTAGA30374
)Column B
(地址:示例POBOX2345ATLANTAGA30384
)我需要制作一个显示两者之间差异的Column C
。
例如,将1234
和7
突出显示为不同的字体颜色。我愿意接受任何关于如何做的想法。
答案 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]
答案 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
仅比较A1
和B1
...如果您有很多行,请循环显示您的行。另外,我假设A1
和A2
的长度相同,否则可能会出现超出范围的索引错误。