Excel用户窗体 – 如果条件不符合,则在退出时设置文本框的焦点

我有一个Excel的用户表单与文本框,把各种信息(名字,姓氏,性别,身高等)。 对于一些文本框,我想申请一种validation。

例如,对于性别领域,唯一可接受的值是“M”或“F”。 我有这一点的代码。 如果您键入“M”或“F”并且退出该字段,则会转到下一个文本框。 但是,如果是其他的东西,MsgBox会popup它应该,但是当你点击确定后,焦点不会设置到文本框。

我究竟做错了什么? 不应该这个工作?

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 

您可以取消您的If语句中的Exit事件。

 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