+ -
当前位置:首页 → 问答吧 → 相同数据比较。。。。。

相同数据比较。。。。。

时间:2011-08-04

来源:互联网

要求:在核对表里根据左边的年度、姓名两项与数据总表.xls对比,两项都相同的自动填入右边存在相同数据下面(包括年度、姓名、个人密码、管理密码四项)。 如果不相同的,就自动填入右边不存在相同数据里(只有年度、姓名两项)。

数据对比.rar (22.2 KB)
数据对比.rar (22.2 KB)
下载次数: 7
2011-8-4 15:47

作者: jjchan2005   发布时间: 2011-08-04

复制内容到剪贴板
代码:
Dim i&, x, y, m, n
Set d = CreateObject("scripting.dictionary")
Set fs = GetObject(ThisWorkbook.Path & "\数据总表.xls")
arr = Range("a2:b" & Range("a65536").End(xlUp).Row)
brr = fs.Sheets(1).UsedRange
ReDim crr(1 To UBound(arr), 1 To 4)
ReDim drr(1 To UBound(arr), 1 To 2)
For i = 2 To UBound(brr)
    x = brr(i, 1) & "," & brr(i, 2)
    y = brr(i, 3) & "," & brr(i, 4)
    d(x) = y
Next i
s1 = 0: s2 = 0
For i = 1 To UBound(arr)
    x = arr(i, 1) & "," & arr(i, 2)
    m = Split(x, ",")
    If d.exists(x) Then
        s1 = s1 + 1
        n = Split(d(x), ",")
        crr(s1, 1) = m(0)
        crr(s1, 2) = m(1)
        crr(s1, 3) = n(0)
        crr(s1, 4) = n(1)
    Else
        s2 = s2 + 1
        drr(s2, 1) = m(0)
        drr(s2, 2) = m(1)
    End If
Next i
Columns("H:I").NumberFormatLocal = "@"
Range("f2").Resize(s1, UBound(crr, 2)) = crr
Range("k2").Resize(s2, UBound(drr, 2)) = drr

作者: dsmch   发布时间: 2011-08-04

附件
新建文件夹.rar (24.93 KB)
新建文件夹.rar (24.93 KB)
下载次数: 5
2011-8-4 16:36

作者: dsmch   发布时间: 2011-08-04

=INDEX($C$2:$C$209,MATCH($F2&$G2,$A$2:$A$209&$B$2:$B$209,0))

附件

数据总表.zip(25.25 KB)

2011-8-4 16:50, 下载次数: 0

作者: fanjianglei   发布时间: 2011-08-04

楼上两位都很强大,但我还是比较喜欢VBA,不知怎么,我这部电脑打开excel时提示对象库未注册,后来在网上找到解决方法,但还是不行,明天回去试下!

作者: jjchan2005   发布时间: 2011-08-05

相关阅读 更多