Excel精英培训网

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

[已解决]求vb

[复制链接]
发表于 2014-1-3 14:16 | 显示全部楼层 |阅读模式
book1.rar (94.43 KB, 下载次数: 6)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-1-4 08:47 | 显示全部楼层
本帖最后由 上清宫主 于 2014-1-4 08:52 编辑

看漏了,待会传
回复

使用道具 举报

发表于 2014-1-4 09:13 | 显示全部楼层    本楼为最佳答案   
Sub test()
Dim d1 As New Dictionary, d2 As New Dictionary, ar1(), ar2(1 To 100, 1 To 1)
For i1% = 1 To Sheets.Count - 1
   For i2% = i1 To i1 + 1
       ar1 = Sheets(i2).[e2].CurrentRegion.Value
       For i3% = 1 To UBound(ar1, 2)
           For i4% = 1 To UBound(ar1)
               If ar1(i4, i3) = "" Then Exit For
               d1(ar1(i4, i3)) = d1(ar1(i4, i3)) + 1
           Next
           For Each tmp In d1.Keys
               If d1(tmp) = 1 Then d2(tmp) = d2(tmp) + 1
           Next
           d1.RemoveAll
       Next
   Next
   For Each tmp In d2.Keys
       If d2(tmp) > 2 Then
          If r% >= 100 Then
             Sheets(1).[b65536].End(3)(2).Resize(r) = ar2
             r = 0
          End If
          r = r + 1
          ar2(r, 1) = tmp
       End If
   Next
   d2.RemoveAll
Next
If r Then Sheets(1).[b65536].End(3)(2).Resize(r) = ar2
End Sub
回复

使用道具 举报

发表于 2014-1-4 09:14 | 显示全部楼层
If d2(tmp) > 2 Then是大于等于3的都取出来。如果是其它自行修改
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 21:55 , Processed in 0.304606 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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