VBA excel特定单元格条目并添加警告消息
我有一个工作表,我正试图在其中输入新产品的详细信息 一列需要5位数字。我想让我的代码做的是,一旦输入了这个数字,如果它不是一个5位数的数字,发送一个警告消息框,要求检查工作编号VBA excel特定单元格条目并添加警告消息,vba,excel,Vba,Excel,我有一个工作表,我正试图在其中输入新产品的详细信息 一列需要5位数字。我想让我的代码做的是,一旦输入了这个数字,如果它不是一个5位数的数字,发送一个警告消息框,要求检查工作编号 如果条目为5位数字,并且包含字母,则警告消息应适用。但是,无论输入什么,我仍然希望单元格接受输入。这是为列B编码的 在工作表代码区域中放置以下内容: Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range, r As Range,
如果条目为5位数字,并且包含字母,则警告消息应适用。但是,无论输入什么,我仍然希望单元格接受输入。这是为列B编码的 在工作表代码区域中放置以下内容:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, r As Range, s As String, L As Long
Dim addy As String
Set rng = Intersect(Range("B:B"), Target)
If rng Is Nothing Then Exit Sub
For Each r In rng
s = r.Text
L = Len(s)
addy = r.Address(0, 0)
If L <> 5 Then
MsgBox "Please check " & addy
Else
For i = 1 To 5
If Not IsNumeric(Mid(s, i, 1)) Then
MsgBox "Please check " & addy
End If
Next i
End If
Next r
End Sub
Private子工作表\u更改(ByVal目标作为范围)
尺寸rng作为范围,r作为范围,s作为字符串,L作为长度
像字符串一样变暗
设置rng=相交(范围(“B:B”),目标)
如果rng为空,则退出Sub
对于rng中的每个r
s=r.文本
L=Len(s)
addy=r.地址(0,0)
如果我5岁那么
MsgBox“请检查”&添加
其他的
对于i=1到5
如果不是数字(Mid(s,i,1)),则
MsgBox“请检查”&添加
如果结束
接下来我
如果结束
下一个r
端接头
由于它是工作表代码,因此安装和自动使用非常容易:
必须启用宏才能工作在您的情况下,我将使用
Excel数据验证
只需将范围更改为9999到100000之间,它将是一个5位数字。也可以使用标准Excel公式验证输入
在“数据验证”对话框中,还可以定义警报或错误尺寸
有关更多信息:感谢您的帮助。我想我理解代码的意思。但是,我对下面这行有问题:Set rng=Intersect(Range(“B:B”),Target)我知道这是针对列B的,但它似乎不接受这一点。我还试着将它指向单元格,特别是它将使用7,3进行检查,表示第7行第3列,但没有运气。您能帮忙吗?谢谢Danilo Favato,您是否有办法检查同一列中是否添加了重复的数字?感谢you@LJohnstone不使用
数据验证
功能,但可以使用条件格式化
突出显示重复项。