ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6460|回复: 14

[求助] 查找数据、核对并显示无误

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-28 18:33 | 显示全部楼层 |阅读模式
求助需求:就是按公司表页里每一行的金额、订单号、银联订单号与数据表里的每一行的三项数据匹配,如果都一样则在结果表里显示“全部匹配”如果有不一样的,则把公司表里不一样的那一行显示到结果表里
主要目的就是核对公司表里的数据是不是都在数据表里,而且三项数据都是对的


非常感谢。

核对.rar

150.05 KB, 下载次数: 53

TA的精华主题

TA的得分主题

发表于 2016-1-28 19:53 | 显示全部楼层
  1. Sub 核对()
  2. Dim i&, r&

  3. Set d = CreateObject("Scripting.Dictionary")
  4. Range("k2:K65536").ClearContents
  5. With Sheets("数据")
  6.     r = .Cells(Rows.Count, 5).End(3).Row
  7.     For i = 1 To r
  8.         d(.Cells(i, "X").Value & "_" & .Cells(i, "E").Value & "_" & .Cells(i, "F").Value) = ""
  9.     Next
  10. End With
  11. r = Cells(Rows.Count, 9).End(3).Row
  12. For i = 2 To r
  13.     If Not d.exists(Cells(i, "H").Value & "_" & Cells(i, "I").Value & "_" & Cells(i, "C").Value) Then
  14.         Cells(i, "K") = "未匹配"
  15.     End If
  16. Next
  17. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2016-1-28 19:53 | 显示全部楼层
。。。。。。。。。。。。。。。。。。。。。

核对.rar

157.22 KB, 下载次数: 44

TA的精华主题

TA的得分主题

发表于 2016-1-28 20:35 | 显示全部楼层
本帖最后由 zax010 于 2016-1-28 21:26 编辑

Sub zz()
    Dim d1, d2, ar, br
    Set d1 = CreateObject("Scripting.Dictionary")
    Set d2 = CreateObject("Scripting.Dictionary")
    ar = Sheet2.Range("C2:I" & Sheet2.[h6536].End(3).Row)
    br = Sheet1.UsedRange
    For i = 1 To UBound(ar)
        d1(ar(i, 7)) = ar(i, 1) & "," & ar(i, 6)
    Next
    For i = 2 To UBound(br)
        d2(br(i, 5)) = br(i, 6) & "," & br(i, 24)
    Next
        For Each k In d1.keys
            If d2.exists(k) Then
                Cells(2 + n, 1).Resize(1, 2) = Split(d1(k), ",")
                Cells(2 + n, 3) = k
                If d1(k) = d2(k) Then
                    Cells(2 + n, 4) = "全部匹配"
                Else
                    Cells(2 + n, 4) = "不匹配"
                End If
            End If
            n = n + 1
        Next
End Sub

TA的精华主题

TA的得分主题

发表于 2016-1-28 20:39 | 显示全部楼层
本帖最后由 zax010 于 2016-1-28 21:29 编辑

>>>>>>>>>>>>>>>>>>>>>>>>>>>


核对.rar (159.21 KB, 下载次数: 43)


TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-29 08:13 | 显示全部楼层
非常感谢楼上各位大师,似乎总是有困难了才来向大家求助,实在是汗颜,以后一定努力学习,争取早日也可以帮助别人。再次感谢

TA的精华主题

TA的得分主题

发表于 2016-1-29 10:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
改进代码,详细核对:

Sub zz()
    Dim d1, d2, ar, br
    Set d1 = CreateObject("Scripting.Dictionary")
    Set d2 = CreateObject("Scripting.Dictionary")
    ar = Sheet2.Range("C2:I" & Sheet2.[h6536].End(3).Row)
    br = Sheet1.UsedRange
    For i = 1 To UBound(ar)
        d1(ar(i, 7)) = ar(i, 1) & "," & ar(i, 6)
    Next
    For i = 2 To UBound(br)
        d2(br(i, 5)) = br(i, 6) & "," & br(i, 24)
    Next
    For Each k In d1.keys
        If d2.exists(k) Then
            Cells(2 + n, 1).Resize(1, 2) = Split(d1(k), ",")
            Cells(2 + n, 3) = k
            If d1(k) = d2(k) Then
                Cells(2 + n, 4) = "全部匹配"
            Else
                Cells(2 + n, 4) = "不匹配"
            End If
            Cells(2 + n, 5).Resize(1, 2) = Split(d2(k), ",")
            If Cells(2 + n, 1) <> Cells(2 + n, 5) Then Cells(2 + n, 1).Interior.ColorIndex = 3
            If Cells(2 + n, 2) <> Cells(2 + n, 6) Then Cells(2 + n, 2).Interior.ColorIndex = 3
        End If
        n = n + 1
    Next
End Sub

TA的精华主题

TA的得分主题

发表于 2016-1-29 10:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各银联订单号对应的不匹配数据标红显示。

核对.rar (159.41 KB, 下载次数: 63)




TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-29 13:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
继续请教,如果说我两个表格的列有变动的话,是不是改   
For i = 1 To UBound(ar)
        d1(ar(i, 7)) = ar(i, 1) & "," & ar(i, 6)
    Next
    For i = 2 To UBound(br)
        d2(br(i, 5)) = br(i, 6) & "," & br(i, 24)这几句就可以了呢,可是为什么好像改完不行,

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-29 15:09 | 显示全部楼层
zax010 发表于 2016-1-29 10:09
各银联订单号对应的不匹配数据标红显示。

谢谢,好厉害。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 07:06 , Processed in 0.038523 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表