本文作者:office教程网

利用excel VBA删除工作表中的重复行

office教程网 2023-12-03 10:19:50
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

如果要在Excel中用VBA的方法以根据某列内容删除重复的行,即当某列有重复数据时仅保留一行,可以用下面的VBA代码。假如以A列为参考,工作表的第一行为标题行,数据从第二行开始。

方法一:用工作表函数CountIf判断该行是否重复

利用VBA选择并打开多个工作簿文件

下面的VBA代码先用Application.GetOpenFilename方法显示“打开”文件对话框,然后打开所选择的一个或多个Excel工作簿文件。 Sub OpenWorkbooks()On Error Resume NextDim SelectFiles As Variant‘

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

excel利用VBA将筛选后的公式批量转换为值

有时需要在Excel中进行筛选后将公式结果转换为值。通常将公式结果转换为值用选择性粘贴的方法,但该方法无法用于筛选后的结果:如果复制筛选后的区域直在原区域接选择性粘贴,Excel会提示复制区域与粘贴区域形状不同而无法粘贴;如果先选定可见区域(如用快捷键“Alt ;”)后再进行复制粘贴,Excel

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:利用excel VBA删除工作表中的重复行发布于2023-12-03 10:19:50
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: