在vba中取消退出事件

在vba中取消退出事件

我有一些文本字段需要在 VBA 用户表单中进行验证。我希望发生的是,当用户退出文本框时,检查格式,如果失败,则将焦点移回该文本框(有效地停止退出事件)

Private Sub Form_RCAIncidentDay_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Form_RCAIncidentDay.Value) > 2 Or Not IsNumeric(Form_RCAIncidentDay.Value) Then
Form_RCAIncidentDay.Value = ""
MsgBox "Please enter a valid day ('00' Format)", vbOKOnly, "Validation Error"
Form_RCAIncidentDay.SetFocus
End If

End Sub

验证很好,但焦点没有移回,并且光标显示在选项卡索引中的下一个字段中。

答案1

在之前添加此行End If

Cancel = True

您也可以删除该.SetFocus行。

只是一个想法,但也许使用组合框来选择日期甚至日期会更容易?

相关内容