设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel技巧] VBA删除工作表中的重复行

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 10:04:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果要在Excel中用VBA的方法以根据某列内容删除重复的行,即当某列有重复数据时仅保留一行,可以用下面的VBA代码。假如以A列为参考,工作表的第一行为标题行,数据从第二行开始。
    方法一:用工作表函数CountIf判断该行是否重复
Sub 删除重复行1()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("A65536").End(xlUp).Row To 3 Step -1
  If WorksheetFunction.CountIf(Range("A2:A" & i), Cells(i, 1)) > 1 Then
    Cells(i, 1).EntireRow.delete
  End If
Next
Application.ScreenUpdating = True
End Sub
    方法二:先高级筛选,再删除隐藏行
Sub 删除重复行2()
Dim rCell As Range, rRng As Range, dRng As Range
On Error Resume Next
Application.ScreenUpdating = False
Set rRng = Range("A1:A" & Range("A65536").End(xlUp).Row)
rRng.AdvancedFilter Action:=xlFilterInPlace, unique:=True
For Each rCell In rRng
  If rCell.EntireRow.Hidden = True Then
     If dRng Is Nothing Then
       Set dRng = rCell.EntireRow
      Else
       Set dRng = Application.Union(dRng, rCell.EntireRow)
      End If
  End If
Next
If Not dRng Is Nothing Then dRng.delete
ActiveSheet.ShowAllData
Application.ScreenUpdating = True
End Sub
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-11 03:09 , Processed in 0.161351 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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