有点复杂哈
在你的Private Sub Worksheet_Change(ByVal Target As Range)中增加点:
If Target.Count = 1 Then
If Target.Column = 4 Then
If VarType(Target) = 8 Then
MsgBox "不是数字,错"
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = 1
Exit Sub
End If
End If
End If