VBA实例教程:删除工作表中的重复行

本例介绍删除工作表中的重复行的三种方法,分别用到countif、RemoveDuplicates、字典等方法。

如图,A列有1万行数据,其中有很多重复项,要求删除重复项。

VBA实例教程:删除工作表中的重复行


达到的效果如图:

VBA实例教程:删除工作表中的重复行


方法1:

Sub t1()

t = Timer

For i = 10000 To 1 Step -1

If WorksheetFunction.CountIf(Sheet1.Columns(1), Cells(i, 1)) > 1 Then

Rows(i).Delete

End If

Next

MsgBox Format(Timer - t, "程序执行时间为:0.000000秒"), 64, "时间统计"

End Sub

运行时间如图:

VBA实例教程:删除工作表中的重复行


方法2:

Sub t2()

t = Timer

Range("a1:a10000").RemoveDuplicates Columns:=1, Header:=xlNo

MsgBox Format(Timer - t, "程序执行时间为:0.0000000000秒"), 64, "时间统计"

End Sub

程序运行时间如图:

VBA实例教程:删除工作表中的重复行


方法3:

Sub t3()

t = Timer

Dim d, arr

Set d = CreateObject("Scripting.Dictionary")

arr = Range("a1:a10000")

For i = 1 To UBound(arr)

d(arr(i, 1)) = ""

Next

[a1].Resize(d.Count, 1) = Application.Transpose(d.keys)

MsgBox Format(Timer - t, "程序执行时间为:0.00000000000000秒"), 64, "时间统计"

End Sub

程序运行时间如图:

VBA实例教程:删除工作表中的重复行


小结:通过以上比较可以看出用后两种方法速度较快,建议如果数据较多的情况下不用循环的方式。


分享到:


相關文章: