加载中…
个人资料
郑君
郑君
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,869
  • 关注人气:55
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VBA删除工作表中的重复行

(2013-06-10 19:32:17)
标签:

删除重复行

excel

分类: IT
VBA删除工作表中的重复行
作者:未知 文章来源:未知 点击数:2335 更新时间:2011-4-28 15:41:10
     

    如果要在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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有