当前位置: 代码迷 >> VBA >> 如何样用VBA快速的查找某一列是否有重复数据
  详细解决方案

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

热度:9480   发布时间:2013-02-26 00:00:00.0
怎么样用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的行
全部删除

打完收工
  相关解决方案