我对 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
方法将焦点保持在此处。
Private Sub InspWkPhone_AfterUpdate()
Select Case Len(Nz(Me.InspWkPhone.Value, vbNullString))
Case 0, 7, 10
' length of value is acceptable so nothing needs to be done
Case Else
MsgBox "Check Phone # MISSING digits!"
Me.InspWkPhone.SetFocus
End Select
End Sub