两列数据找差异,我们一般都是用条件格式 – 突出显示单元格格规则 – 重复值来快速完成。

但如果同一列中有重复值 ,核对结果就出错了。

小编多年以来一直想解决这个问题,直到昨天,兰色用VBA编写了一个新功能,完美的解决了两列核对的问题。
选中两列按Ctrl + m即可找出两列重复值。

做会计工作的同学都是遇到过一对一的核对情况,当核对的值出现多次时,需要进行一对一的核对。如下图所示,第一列有一个100,第二列出现两个100,那么一对一核对结果时第2列第2个100不应该填充颜色。

这个用Ctrl+m同样可以完成。

想用不同颜色显示一对一核对结果?当然可以!

看到这么好用的核对功能,你是不是也想试一下Ctrl+m ? 先别试,因为你试了也没效果。你需要跟小编一起做以下以步才可使用。
第1步 打开你要做核对的表格,工作表标签右键 – 点击查看代码。在弹出的新窗口插入 – 模块,然后复制下面的代码粘贴到右侧窗口中。

Sub 核对() Dim k k = 3 If k = 1 Then 普通核对 ElseIf k = 2 Then 单色一对一核对 ElseIf k = 3 Then 多色一对一核对 End If End Sub Sub 普通核对() Dim arr1, arr2 Dim 红 As Byte, 绿 As Byte, 黄 As Byte Set rg = Selection If rg.Areas.Count <> 2 Then Exit Sub arr1 = rg.Areas(1) arr2 = rg.Areas(2) '开始核对 '核对前删除颜色 rg.Interior.ColorIndex = xlNone For x = 1 To UBound(arr1) For y = 1 To UBound(arr2) If arr1(x, 1) = arr2(y, 1) Then rg.Areas(1)(x).Interior.Color = RGB(255, 199, 206) rg.Areas(2)(y).Interior.Color = RGB(255, 199, 206) End If Next y Next x End Sub Sub 单色一对一核对() Dim arr1, arr2, arr3(1 To 10000) Dim 红 As Byte, 绿 As Byte, 黄 As Byte Set rg = Selection If rg.Areas.Count <> 2 Then Exit Sub arr1 = rg.Areas(1) arr2 = rg.Areas(2) '开始核对 '核对前删除颜色 rg.Interior.ColorIndex = xlNone For x = 1 To UBound(arr1) For y = 1 To UBound(arr2) If arr1(x, 1) = arr2(y, 1) And arr3(y) <> 1 Then rg.Areas(1)(x).Interior.Color = RGB(255, 199, 206) rg.Areas(2)(y).Interior.Color = RGB(255, 199, 206) arr3(y) = 1 GoTo 10 End If Next y 10: Next x End Sub Sub 多色一对一核对() Dim arr1, arr2, arr3(1 To 10000) Dim 红 As Byte, 绿 As Byte, 黄 As Byte Set rg = Selection If rg.Areas.Count <> 2 Then Exit Sub arr1 = rg.Areas(1) arr2 = rg.Areas(2) '开始核对 '核对前删除颜色 rg.Interior.ColorIndex = xlNone For x = 1 To UBound(arr1) For y = 1 To UBound(arr2) If arr1(x, 1) = arr2(y, 1) And arr3(y) <> 1 Then 红 = Application.RandBetween(1, 255) 绿 = Application.RandBetween(1, 255) 黄 = Application.RandBetween(1, 255) rg.Areas(1)(x).Interior.Color = RGB(红, 绿, 黄) rg.Areas(2)(y).Interior.Color = RGB(红, 绿, 黄) arr3(y) = 1 GoTo 10 End If Next y 10: Next x End Sub
注:修改代码中K的值即可在几种核对模式中切换(1是普通核对,2是单色一对一核对,3是多色一对一核对)
Sub 核对()
Dim k
k = 3
If k = 1 Then
普通核对
ElseIf k = 2 Then
单色一对一核对
ElseIf k = 3 Then
多色一对一核对
End If
第2步 开发工具 – 宏 – 选取“核对” – 选项 – 快捷键后输入字母m

第3步 文件另存为启用宏的文件

完成以上以步后,你就可以在当前文件中使用Ctrl + m了。
也许你会问能不能在所有打开的Excel文件中使用它?可以,但你需要另存为加载宏文件,然后再加载它即可。但小编一般不建议这样做,因为用宏做成的功能执行后不能撤消,万一你不小心按了Ctrl+m会破坏你表格的格式。
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。号仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3252784850@qq.com 举报,一经查实,本站将于三个工作日内删除本文链接:https://www.cawinemall.com/ban/7523.html