前言:
眼前各位老铁们对“vba 删除重复项的代码”大概比较注重,姐妹们都需要学习一些“vba 删除重复项的代码”的相关知识。那么小编同时在网上网罗了一些对于“vba 删除重复项的代码””的相关内容,希望兄弟们能喜欢,同学们一起来了解一下吧!各位好,今天开始讲VBA代码解决方案的二十九讲:在EXCEL中,如何借助于代码来完成删除重复行的工作。在实际工作中这个问题是经常用到的,有没有重复的数据,是EXCEL数据统计中非常重要的工作之一,也是经常处理的工作之一。如果掌握了这个技巧,无形中会提高自己的工作效率,而且还可以提高工作的准确性。
实例:在实际应用中,可能需要删除工作表中A列的重复内容而只保留一行,如何来解决这个问题呢?可以借助工作表CountIf函数来完成。我们先来讲解一下Countif函数。
Countif函数: 是Microsoft Excel中对指定区域中符合指定条件的单元格计数的一个函数,在WPS,Excel2003和Excel2007等版本中均可使用。
语法规则如下:countif(range,criteria)
参数:
a) range 要计算其中非空单元格数目的区域
b) criteria 以数字、表达式或文本形式定义的条件
在讲解完这个函数后,我们来看代码:
Sub MyDeleteRow()
Dim R As Integer
Dim i As Integer
With Sheets("sheet9")
R = .[A65536].End(xlUp).Row
For i = R To 1 Step -1
If WorksheetFunction.CountIf(.Columns(1), .Cells(i, 1)) > 1 Then
.Rows(i).Delete
End If
Next
End With
End Sub
代码解析:MyDeleteRow过程删除工作表A列重复单元格所在的整行内容,只保留一行。
a) 第5行代码取得工作表中A列的最后一个非空单元格的行号,要注意Range对象的End属性。不知读者是否已经掌握。
b) 第6行到第10行代码从最大行数至最小行数循环判断A列单元格内容是否重复并删除重复单元格所在的整行。和技巧32 一样,此处For...Next循环也要从最大行数至最小行数开始循环判断,否则可能会删除不净。
c) 其中第7、8行代码使用工作表CountIf函数判断单元格内容是否重复,如果重复则删除该单元格所在的行。
运行MyDeleteRow过程工作表区域下截图:
代码截图:
运行后的截图:
运行的结果后,可以看到和预想的一样。
今日内容回向:
1 删除工作表中重复数据的思路是什么?
2 COUNTIF 的意义是什么?
3 上面代码中.Columns(1)的意义是什么?
标签: #vba 删除重复项的代码