在文本框的用户表单中设置焦点

问题描述 投票:0回答:1

我有一个带有日期文本框的用户表单。退出时,我测试输入的值是否为日期,如果不是,则会弹出一个消息框,通知该条目无效。

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
作为事件处理程序,结果相同。

excel vba textbox userform setfocus
1个回答
2
投票

请。尝试将“取消”设置为“真”,以防数据输入错误。这会取消退出事件。

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
© www.soinside.com 2019 - 2024. All rights reserved.