我有一个带有文本框的Excel用户表单,用于放置各种信息(名字,姓氏,性别,身高等)。对于某些文本框,我想应用一种验证。
例如,对于性别字段,唯一可接受的值是“M”或“F”。我有这段代码。如果您键入“M”或“F”并从字段中选项卡,它将转到下一个文本框。但如果它是其他任何东西,MsgBox会弹出它应该的,但是在你单击OK后,焦点不会设置为文本框。
我做错了什么?这不应该起作用吗?
Private Sub txtGender_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txtGender.Value <> "M" And txtGender.Value <> "F" Then
MsgBox ("Invalid gender.")
txtGender.SetFocus
End If
End Sub
答案 0 :(得分:1)
您可以在Exit
声明中取消If
事件。
Private Sub txtGender_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txtGender.Value <> "M" And txtGender.Value <> "F" Then
MsgBox ("Invalid gender.")
Cancel = True
End If
End Sub