仅具有特定值的单元格

时间:2016-01-06 19:54:21

标签: excel validation excel-vba vba

每当发布无效值时,我都需要一个宏来显示msgbox。我需要该单元格只接受这种格式的值“LLXXXXXXX”,其中L是字母,X是数字。我正在使用数据验证来显示错误消息。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

正如大家所说,使用数据验证。

然而,这是一个宏。

[A1]更改为您要监控的单元格。

将此信息放在包含要监控的单元格的工作表的工作表对象中。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1]) Is Nothing Then
    If Not [A1] Like "[A-z][A-z]#######" Then
        [A1].Select
        MsgBox ("Invalid value in A1!")
    End If
End If
End Sub

编辑:只是因为,这是多个单元格的解决方案。

这也会显示一个列出错误单元格的消息框。

如果细胞不正确,它也会将细胞染成红色。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonRange As Range
'What range do we want to monitor?
Set MonRange = [A1:A10]
'---------------------------------
If Not Intersect(Target, MonRange) Is Nothing Then
    Dim c As Range, Inc As String
    Inc = "Incorrect Cells: " & Chr(13) & "-----------------" & Chr(13)
    For Each c In Intersect(Target, MonRange)
        If Not c Like "[A-z][A-z]#######" Then
            Inc = Inc & c.Address(False,False) & ","
            c.Interior.Color = RGB(230, 180, 180)
        Else
            c.Interior.ColorIndex = xlNone
        End If
    Next c
    If Len(Inc) <> 36 Then MsgBox (Left(Inc,Len(Inc)-1))
End If
End Sub