Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2310|回复: 1

[已解决]一个和三个表比较,分别筛选数字不相同的行

[复制链接]
发表于 2014-5-2 15:50 | 显示全部楼层 |阅读模式
请编写代码
         1、把工作表1中表1分别与工作表2各表比较,工作表1表1与工作表2表1不相同数字的行筛选出来,放到工作表3表1里;工作表1表1与工作表2表2不相同数字的行筛选出来,放到工作表3表2里;工作表1表1与工作表2表3不相同数字的行筛选出来,放到工作表3表3里.
        2、工作表3有筛选后数据.
谢谢!
最佳答案
2014-5-2 16:33
  1. Sub Macro2()
  2. Dim arr, brr, d, i&, j&, k&, l&, s&, s2&, zf$
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Sheets("1").Range("a1").Resize(126, 9)
  5. For j = 1 To 115 Step 57
  6.     s = s + 1
  7.     For i = 1 To UBound(arr)
  8.         zf = Join(Application.Index(arr, i, 0), ",")
  9.         d(zf) = d(zf) + 1
  10.     Next
  11.     brr = Sheets("2").Cells(j, 1).Resize(56, 9)
  12.     For k = 1 To UBound(brr)
  13.         zf = Join(Application.Index(brr, k, 0), ",")
  14.         d(zf) = d(zf) + 1
  15.     Next
  16.     a = d.keys: b = d.items: s2 = 0
  17.     For l = 0 To d.Count - 1
  18.         If b(l) = 1 Then
  19.             s2 = s2 + 1
  20.             Sheets("3").Cells((s - 1) * 71 + s2, 1).Resize(1, 9) = Split(a(l), ",")
  21.         End If
  22.     Next
  23.     d.RemoveAll
  24. Next
  25. [a:i] = [a:i].Value
  26. End Sub
复制代码

一个和三个表比较,分别筛选数字不相同的行 .rar

23.36 KB, 下载次数: 10

发表于 2014-5-2 16:33 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro2()
  2. Dim arr, brr, d, i&, j&, k&, l&, s&, s2&, zf$
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Sheets("1").Range("a1").Resize(126, 9)
  5. For j = 1 To 115 Step 57
  6.     s = s + 1
  7.     For i = 1 To UBound(arr)
  8.         zf = Join(Application.Index(arr, i, 0), ",")
  9.         d(zf) = d(zf) + 1
  10.     Next
  11.     brr = Sheets("2").Cells(j, 1).Resize(56, 9)
  12.     For k = 1 To UBound(brr)
  13.         zf = Join(Application.Index(brr, k, 0), ",")
  14.         d(zf) = d(zf) + 1
  15.     Next
  16.     a = d.keys: b = d.items: s2 = 0
  17.     For l = 0 To d.Count - 1
  18.         If b(l) = 1 Then
  19.             s2 = s2 + 1
  20.             Sheets("3").Cells((s - 1) * 71 + s2, 1).Resize(1, 9) = Split(a(l), ",")
  21.         End If
  22.     Next
  23.     d.RemoveAll
  24. Next
  25. [a:i] = [a:i].Value
  26. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 23:54 , Processed in 0.966742 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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