vba 如何比较excel两列不重复数据

用公式是可以,但我要用VB或VBA操作,谢谢!
下面的代码有点问题,如果A列和B列的相同数据不在同一行,最后的结果也会显示红色,请知道的朋友帮忙修改,谢谢!
...
Dim cc
For cc = 2 To NewDataBook.Sheets(1).UsedRange.Rows.Count
If NewDataBook.Sheets(1).Cells(cc, 1) <> NewDataBook.Sheets(1).Cells(cc, 2) Then
NewDataBook.Sheets(1).Cells(cc, 1).Font.Color = vbRed
NewDataBook.Sheets(1).Cells(cc, 2).Font.Color = vbRed
End If
Next

你是要相同数据的并且是同行的才显示红色是吧?
可是看你贴的代码是数据不同了就把两个单元格的的字显示红色啊.
先按你贴的代码加上 是否同行的判断 贴给你 你试试吧
Dim cc
With NewDataBook.Sheets(1)
For cc = 2 To .UsedRange.Rows.Count
If .Cells(cc, 1) <> .Cells(cc, 2) And .Cells(cc, 1).Row = .Cells(cc, 2).Row Then
.Cells(cc, 1).Font.Color = vbRed
.Cells(cc, 2).Font.Color = vbRed
End If
End With
Next追问

你的代码结果意思和我的一样,我的意思是A列和B列中有重复数据,不管重复的数据是否在同一行不管他,只需要将A列和B列中不重复的数据变成红色即可。
具体范例请你参考附件图片,谢谢!

追答

Dim cc
With NewDataBook.Sheets(1)
h = .UsedRange.Rows.Count
For x = 1 To 2
y = IIf(i = 1, 2, 1)
For cc = 2 To h
Set rng = .Range(.Cells(2, y), .Cells(h, 2)).Find(.Cells(cc, x), lockat:=xlWhole)
If rng Is Nothing Then .Cells(cc, x).Font.Color = vbRed
Next
End If
End With
Next

追问

RNG没有定义命名,报错了。在VB工程里无法识别。

追答

我是用VBA 写的.你在VB里把rng 定义成excle的range变量类型.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-04
不用VBA
假定两列分居A、B列,从第二行开始
c2输入=if(countif(b:b,a2)>=1,“重复","")
下拉复制填充
第2个回答  2012-05-04
如比较A列和B列,则在C1输入=COUNTIF(A1,B1)
,相同显示1,不相同显示0,试试看,下拉拖到你所需要的地方
相似回答