标签:VBA
自Excel 2010发布以来,已经具备删除工作表中重复行的功能,如下图1所示,即功能区“数据”选项卡“数据工具——删除重复值”。
图1
使用VBA,可以自动执行这样的操作,删除工作表所有数据列中的重复行,或者指定列的重复行。
下面的Excel VBA代码,用于删除特定工作表所有列中的所有重复行。
代码语言:javascript复制Sub DeDupeCols()
Dim rng As Range
Dim i As Integer
Dim Cols As Variant
Set rng = [A1].CurrentRegion
ReDim Cols(0 To rng.Columns.Count - 1)
For i = 0 To UBound(Cols)
Cols(i) = i 1
Next i
rng.RemoveDuplicates Columns:=(Cols), Header:=xlYes
End Sub
这里使用了当前区域,假设标题位于第一行。如果没有标题行,则删除代码后面的部分。
如果只想删除指定列(例如第1、2、3列)中的重复项,那么可以使用下面的代码:
代码语言:javascript复制Sub DeDupeColSpecific()
Cells.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
End Sub
可以修改代码中代表列的数字,以删除你想要的列中的重复行。这点很有用。
注:本文学习整理自thesmallman.com,略有修改,供有兴趣的朋友参考。