我对 VBA 还很陌生。所以我不知道从哪里开始解决这个问题。我有一个电话号码条目,为了避免将来出现错误,我想强制输入的数据为空白/空或长度为 7 或 10,如果长度不正确,用户就无法离开该字段。
我尝试使用IF
语句来确认长度,并且能够在条件不满足时弹出一个消息框,但我不知道如何保持焦点在那里直到输入正确的长度。
Private Sub InspWkPhone_AfterUpdate()
Me.Refresh
If Len(Me.InspWkPhone) <> 7 Then
If Len(Me.InspWkPhone) <> 10 Then
MsgBox (" Check Phone # MISSING digits! ")
End If
End If
End Sub
最终,电话号码前后会输入几种类型的数字数据。我试图避免将邮政编码或单价输入错误的位置。
如果您使用一种
Select Case
方法,您可以将接受条件合并到一行中。我更喜欢这种方式,而不是嵌套If ... Then
块。看看你的想法。我放弃了,
Me.Refresh
因为我看不出这里有什么好处。您可以使用控件的
SetFocus
方法来保持焦点在那里。这是我试图给你你所要求的东西,但我建议你考虑使用控件的BeforeUpdate 事件,而不是
AfterUpdate