第1个回答 2009-01-20
Private Sub Worksheet_Change(ByVal Target As Range)
'设定监测范围,本例为D1:D10。
If (Target.Column = 4 And Target.Row > 0 And Target.Row < 11) Then
Dim i As Integer
Dim mstr As String
For i = 1 To 10
'检测时跳过目标单元格。
If i = Target.Row Then GoTo nextfor
'多次重复输入,不重复报错。
If Left(Target.Value2, 5) = "**输入值" Then GoTo nextfor
'判断过程
If Cells(i, 4).Value2 = Target.Value2 Then
mstr = "**输入值“" & Target.Value2 & "”已存在于单元格D" & i & "中!"
Target.Value2 = mstr
'设置字体颜色为红色。
Target.Font.Color = vbRed
GoTo nextfor
Else
Target.Font.Color = vbBlack
End If
nextfor: Next
Else
End If
End Sub
如:
中国
美国
伊朗
**输入值“美国”已存在于单元格D2中!
**输入值“伊朗”已存在于单元格D3中!
**输入值“中国”已存在于单元格D1中!