EXCEL中同一列避免重复数据[原创]

宏代码如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Long
    If Split(ActiveCell.Address, "$")(2) = 1 Then Exit Sub  '活动单元格是最顶上的单元格时退出SUB
    For i = 1 To (Split(ActiveCell.Address, "$")(2) - 2)
        If Range(Split(ActiveCell.Address, "$")(1) & i).Value = Range(Split(ActiveCell.Address, "$")(1) & (Split(ActiveCell.Address, "$")(2)) - 1).Value And Range(Split(ActiveCell.Address, "$")(1) & (Split(ActiveCell.Address, "$")(2)) - 1).Value <> "" Then
            Range(Split(ActiveCell.Address, "$")(1) & i).Interior.Color = RGB(200, 160, 35)
            Range(Split(ActiveCell.Address, "$")(1) & (Split(ActiveCell.Address, "$")(2)) - 1).Interior.Color = vbRed
            Dim RC
            RC = MsgBox("IMEI号:" & Range(Split(ActiveCell.Address, "$")(1) & (Split(ActiveCell.Address, "$")(2)) - 1).Value & "与单元格" & Split(ActiveCell.Address, "$")(1) & i & "的IMEI号重复!是否处理?", vbYesNo + vbQuestion, "号码重复!是否处理?      ------Powered By 游虫")
            If RC = vbYes Then
                Range(Split(ActiveCell.Address, "$")(1) & i).Interior.ColorIndex = False
                Range(Split(ActiveCell.Address, "$")(1) & (Split(ActiveCell.Address, "$")(2)) - 1).Interior.ColorIndex = False
                Range(Split(ActiveCell.Address, "$")(1) & (Split(ActiveCell.Address, "$")(2)) - 1).Value = ""
                Range(Split(ActiveCell.Address, "$")(1) & (Split(ActiveCell.Address, "$")(2)) - 1).Select
                Exit Sub
            End If
        End If
    Next i
End Sub

原文地址:https://www.cnblogs.com/mic86/p/1764948.html