在VBA用户窗体中,退出文件时触发哪个事件

在VBA用户窗体中,退出文件时触发哪个事件,vba,userform,Vba,Userform,我正在Windows 10(64位)平台上使用Microsoft Office Professional Plus(64位)。我有一个子例程,当我更改名为MyDate的Userform字段时,它会被处理。它被称为Private Sub MyDate\u AfterUpdate()。这是表单上的第二个字段。只要编辑了MyDate字段的内容,它就可以正常工作。但是,如果用户不需要更新MyDate字段的内容,因为他们接受该字段的默认值,只需按tab键通过第二个字段,我仍然希望执行子例程。当我只是在字段

我正在Windows 10(64位)平台上使用Microsoft Office Professional Plus(64位)。我有一个子例程,当我更改名为
MyDate
的Userform字段时,它会被处理。它被称为
Private Sub MyDate\u AfterUpdate()
。这是表单上的第二个字段。只要编辑了
MyDate
字段的内容,它就可以正常工作。但是,如果用户不需要更新
MyDate
字段的内容,因为他们接受该字段的默认值,只需按tab键通过第二个字段,我仍然希望执行子例程。当我只是在字段中使用tab键而不必编辑内容时,我可以使用什么事件来激活代码?感谢您的关注。

如果您查看代码窗格的顶部,您会注意到两个下拉列表。左侧包含可以在该类中实现的所有接口和事件提供程序(一个
UserForm
是一个类)

从该下拉列表中选择您的
MyDate
控件;右侧的下拉列表现在列出了您可以为此
MyDate
控件处理的每个事件:

在这种特殊情况下,
退出
事件似乎是一个很好的候选事件:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'make Cancel.Value = True to prevent exiting the control.
    '...ideally... make that conditional...
End Sub

通过一致地使用这些下拉列表让VBE为您生成事件处理程序(而不是从内存中键入),您可以避免出错。。。错误地获取事件处理程序签名可以做任何事情,从根本上说什么都不做,幸运的话可以编译错误,幸运的话可以诊断奇怪且难以诊断的行为。

感谢Mathieu的回复。这就解决了问题。我感谢你的帮助。