excel vba如何删除两个表重复行

2025-02-27 23:22:38
推荐回答(3个)
回答1:

方法一:用工作表函数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

回答2:

给你个思路,把每一行存到一个数组里面(比如array=[A1:H1]),用join函数把数组串成字符串,直接对比,至于怎么遍历就看你了
大概过程
1、用end(xlup).row确定多少行
2、用end(xltoleft).column确定多少列
或者直接取usedrange的rows.count和columns.count属性
两人上for循环
里面用上面说的对比就行了,如果相同,直接range().delete或者clear

回答3:


一五九六三九七零