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