Excel userform - 如果条件不满足,则在退出时设置文本框的焦点

时间:2017-09-11 16:04:42

标签: excel vba excel-vba

我有一个带有文本框的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

1 个答案:

答案 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
相关问题