Excel精英培训网

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

如何编辑VBA查找多表单元格数据是否唯一性?

[复制链接]
发表于 2014-9-23 23:45 | 显示全部楼层 |阅读模式
如何编辑VBA查找多表单元格数据是否唯一性?

编辑VBA汇总多表单元格数据是否唯一值.rar

6.07 KB, 下载次数: 12

发表于 2014-9-24 00:04 | 显示全部楼层
估计没人会给你做,一是发错地方了,二是数据量太大,建议改用数据库吧!
回复

使用道具 举报

发表于 2014-9-24 08:25 | 显示全部楼层
问题不难,可以实现的。并且各分表可能为多个工作簿,也可能实现多工作簿汇总的。
回复

使用道具 举报

发表于 2014-9-24 09:36 | 显示全部楼层
  1. Sub 查找()
  2.     Dim arr, ir&, k&, nam$$, shnam$$
  3.     Dim brr, ir1&, k1&, sh As Worksheet, B As Boolean, N%, nam1
  4.     Dim crr(), a&
  5.     With Worksheets("要查找的数据")
  6.         .Select
  7.         shnam = .Name
  8.         ir = .Range("c" & Cells.Rows.Count).End(xlUp).Row
  9.         arr = .Range("a2:e" & ir)
  10.     End With
  11.     For k = 1 To UBound(arr, 1)
  12.         nam = arr(k, 3)
  13.         a = a + 1
  14.         ReDim Preserve crr(1 To 7, 1 To a)
  15.         crr(1, a) = arr(k, 1)
  16.         crr(2, a) = arr(k, 2)
  17.         crr(3, a) = arr(k, 3)
  18.         crr(4, a) = arr(k, 4)
  19.         crr(5, a) = arr(k, 5)
  20.         crr(6, a) = shnam
  21.         crr(7, a) = "c" & k + 1
  22.         For Each sh In ThisWorkbook.Worksheets
  23.             If Left(sh.Name, 5) = "Sheet" Then
  24.                 With sh
  25.                     ir1 = .Range("c" & Cells.Rows.Count).End(xlUp).Row
  26.                     brr = .Range("a2:e" & ir)
  27.                 End With
  28.                 For k1 = 1 To UBound(brr, 1)
  29.                     nam1 = Split(brr(k1, 3), "、")
  30.                     B = False
  31.                     For N = 0 To UBound(nam1)
  32.                         '是否需要加上重名限制
  33.                         If InStr(nam, nam1(N)) > 0 Then B = True: Exit For
  34.                     Next N
  35.                     If B Then
  36.                         a = a + 1
  37.                         ReDim Preserve crr(1 To 7, 1 To a)
  38.                         crr(1, a) = brr(k1, 1)
  39.                         crr(2, a) = brr(k1, 2)
  40.                         crr(3, a) = brr(k1, 3)
  41.                         crr(4, a) = brr(k1, 4)
  42.                         crr(5, a) = brr(k1, 5)
  43.                         crr(6, a) = sh.Name
  44.                         crr(7, a) = "c" & k1 + 1
  45.                     End If
  46.                 Next k1
  47.             End If
  48.         Next sh
  49.     Next k
  50.     Worksheets.Add after:=Worksheets(ThisWorkbook.Sheets.Count)
  51.     ActiveSheet.Name = "汇总" & ThisWorkbook.Sheets.Count
  52.     Columns("D:D").NumberFormatLocal = "@"
  53.     Range("A2").Resize(UBound(crr, 2), 7) = Application.WorksheetFunction.Transpose(crr)
  54. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-9-24 19:50 | 显示全部楼层
wp8680 发表于 2014-9-24 09:36

已复制代码,未达到效果。

2.编辑VBA汇总多表单元格数据是否唯一值.rar

12.17 KB, 下载次数: 1

回复

使用道具 举报

发表于 2014-9-25 16:15 | 显示全部楼层
dwqqh 发表于 2014-9-24 19:50
已复制代码,未达到效果。

不可能达不到效果,我试了是行了。

现在本文中上传的文件附件中,有自杀代码,请在使用前关闭其他工作簿

编辑VBA汇总多表单元格数据是否唯一值.rar (20.94 KB, 下载次数: 1)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 21:17 , Processed in 0.259007 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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