Kevin

虫虫的痕迹!!!
  首页  :: 新随笔  :: 订阅 订阅  :: 管理

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

Posted on 2010-06-25 10:27  KevinYao  阅读(604)  评论(0编辑  收藏  举报

宏代码如下:

 

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