首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

如何样用VBA快速的查找某一列是否有重复数据

2012-02-25 
怎么样用VBA快速的查找某一列是否有重复数据因为EXCEL的数据行数比较多,有几千行。所以想用快速的方法,查找

怎么样用VBA快速的查找某一列是否有重复数据
因为EXCEL的数据行数比较多,有几千行。
所以想用快速的方法,查找某一列的数据,行与行之间是否有重复。
有什么方法吗?

[解决办法]
'比较A列行与行之间是否有重复,有则将重复单元格变灰色
Dim index As Long '行号
Dim temp As String '当前单元格上一单元格值,作比较用
Dim strRangeA As String 'A列单元格
Dim strColor As Integer '颜色

temp = " "
strColor = 15

For index = 1 To 65536

strRangeA = "A " + CStr(index)

If Range(strRangeA).Value = " " Then
Exit Sub
End If

If temp = Range(strRangeA).Value Then

Range(strRangeA).Select
With Selection.Interior
.ColorIndex = strColor
.Pattern = xlSolid
End With

End If
temp = Range(strRangeA).Value
Next
[解决办法]
不用VBA即可实现
用countif配合自动筛选

假设数据共9列(A~I)
第一行为标题行
其中A与C列为关键列
取J与K列为辅助列(列名分别为辅1 辅2)

在J2格写入公式 =A2 & C2
并填充J列(这一步用于生成对重复数据的识别列)

在K2格写入公式 =countif(J$2:J2,j2)
填充K列

此时K列中大于1的行都是重复行
打开自动筛选
选出大于1的行
全部删除

打完收工

热点排行