Excel精英培训网

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

[已解决]vba跨表删除重复行记录

[复制链接]
发表于 2013-2-26 17:42 | 显示全部楼层 |阅读模式
问题见附件,谢谢! 跨表删除重复行记录.rar (16.78 KB, 下载次数: 24)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-2-26 18:02 | 显示全部楼层
你的数据是随机函数产生,只要删除或修改一个单元,所有数据都会改变!
所以,无法解决啦!!
回复

使用道具 举报

发表于 2013-2-26 18:19 | 显示全部楼层
你的单元格不该用随机函数,会自动刷新的。
回复

使用道具 举报

发表于 2013-2-26 18:26 | 显示全部楼层    本楼为最佳答案   
  1. Sub 去重复行()
  2.     Dim iLastRow&
  3.     Dim i&, j&
  4.     Dim arrTemp, arr
  5.     Dim str$

  6.     Dim dic As Object
  7.     Dim keys, items
  8.     Set dic = CreateObject("scripting.dictionary")

  9.     With Worksheets("Sheet2")
  10.         arr = .Range("a1").CurrentRegion
  11.         For i = 2 To UBound(arr)
  12.             arrTemp = WorksheetFunction.Index(arr, i, 0)
  13.             'Stop
  14.             dic(Join(arrTemp, "#")) = ""
  15.         Next
  16.     End With
  17.    
  18.     arr = Range("a12").CurrentRegion.Value
  19.     Application.ScreenUpdating = False
  20.    
  21.     For i = UBound(arr) To 2 Step -1
  22.         arrTemp = WorksheetFunction.Index(arr, i, 0)
  23.         str = Join(arrTemp, "#")
  24.         If dic.Exists(str) Then
  25.             Rows(11 + i).Delete
  26.             j = j + 1
  27.         End If
  28.     Next
  29.     Application.ScreenUpdating = True
  30.     If j > 0 Then MsgBox "一共删除了 " & j & " 条重复行"
  31. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-2-27 08:42 | 显示全部楼层
hwc2ycy 发表于 2013-2-26 18:26

谢谢,完美解决问题。羡慕呀,什么时候自己也能写出这般代码,先慢慢消化。。。(偷懒用随机数字生成的试验数据)

点评

随机数真坑爹呀,我先没看你的单元格数据,后来发现怎么也匹配不出来,才去看的。  发表于 2013-2-27 08:55
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 20:21 , Processed in 0.432453 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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