我有一个带有日期文本框的用户表单。退出时,我测试输入的值是否为日期,如果不是,则会弹出一个消息框,通知该条目无效。
Private Sub tbRGDatum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With tbRGDatum
If IsDate(.Value) Then
.Text = Format(.Text, "dd.mm.yyyy")
Else
MsgBox "Bitte gültiges Datum im Format DD.MM.YYYY eingeben"
.SetFocus
End If
End With
End Sub
我希望光标回到文本框中,这样人们就被迫做出正确的输入。
我尝试了
.SetFocus
和.SelStart = 1
。两者都没有效果。退出后,弹出MsgBox,但光标不在框中。没有错误信息。
我也尝试了
tbRGDatum.SetFocus
下面而不是里面的End With
来测试它,什么也没有发生。
怀疑MsgBox是罪魁祸首,我尝试了没有它的代码。
我也尝试过
_AfterUpdate
作为事件处理程序,结果相同。
请。尝试将“取消”设置为“真”,以防数据输入错误。这会取消退出事件。
With tbRGDatum
If IsDate(.Value) Then
.Text = Format(.Text, "dd.mm.yyyy")
Else
MsgBox "Bitte gültiges Datum im Format DD.MM.YYYY eingeben"
Cancel = True
End If
End With
End Sub