Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim I As Integer
'定义设置的列为A列
If Target.Column = 1 Then
For I = 2 To range("a1").end(xldown).row
If Target.Value <> "" And Target.Value = Cells(I, 1).Value Then
'设置提示信息
MsgBox "对不起,您输入的数据已经存在,请重新输入."
'取消刚才输入的数据
Target.Value = ""
'光标指向刚才重复输入的单元格
Target.Select
End If
Next I
End If
End Sub
比如输入区域在A列A2:A1000,示例代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim I As Integer
'定义设置的列为A列
If Target.Column = 1 Then
'定义输入区域为A2:A1000
For I = 2 To 1000 Step 1
If Target.Value <> "" And Target.Value = Cells(I, 1).Value Then
'设置提示信息
MsgBox "对不起,您输入的数据已经存在,请重新输入."
'取消刚才输入的数据
Target.Value = ""
'光标指向刚才重复输入的单元格
Target.Select
End If
Next I
End If
End Sub