检查所有单元格中的重复项

时间:2016-11-21 10:31:07

标签: excel vba

如何以最简单的方式对此进行编码?

如果我们说Range("A1").value = "Thursday"

检查所有具有值的单元格的重复项(B1,C1,D1,...)

如果找到重复项,请在每个单元格Range("B2:B4")下方选择3个单元格,依此类推......

2 个答案:

答案 0 :(得分:1)

最简单的方法是检查重复项:

使用WorksheetFunction

  

= COUNTIF(A:A,A1)→1

enter image description here

使用VBA

Dim Target As Range
Dim r As Range

Set Target = Range("A1", Range("A" & Rows.Count).End(xlUp))

For Each r In Target
    r.Offset(0, 1) = WorksheetFunction.CountIf(Target, r.Value) > 1
Next

如果要删除范围第一列中的重复项

  

Target.RemoveDuplicates Columns:= 1,Header:= xlNo

如果您想扩展您的范围以包含列B和C

  

设置目标=范围(“A1”,范围(“A”和Rows.Count)。结束(xlUp))。调整大小(,3)

删除第一列和第三列中的重复项

  

Target.RemoveDuplicates Columns:= Array(1,3),Header:= xlNo

删除包含重复项的行

  

Target.EntireRow.RemoveDuplicates Columns:= Array(1,3),Header:= xlNo

答案 1 :(得分:0)

下面的代码标识列中的重复值,并用红色突出显示。希望这会有所帮助。

  iLastRow = Cells(chosenExcelSheet.Rows.Count, 1).End(xlUp).Row 'Determine the last row to look at     
    Set rangeLocation = Range("A1:A" & iLastRow) 'Range can be updated as per your need

    'Checking if duplicate values exists in same column
        For Each myCell In rangeLocation
            If WorksheetFunction.CountIf(rangeLocation, myCell.Value) > 1 Then
                myCell.Interior.ColorIndex = 3'Highlight with red Color
            Else
                myCell.Interior.ColorIndex = 2'Retain white Color
            End If
        Next