输入无效数据后,将光标置于用户窗体中

时间:2015-04-09 18:13:35

标签: excel-vba excel-2013 vba excel

我使用以下代码(在Excel 2013 Windows 8.1中):

Private Sub txtDateBox_exit(ByVal cancel As msforms.ReturnBoolean)
    If IsDate(txtDateBox.Value) = False Then
        MsgBox "Enter a Valid Date, such as Jan 23, 2015"
        txtDateBox.SetFocus
   End If
End Sub

如果输入无效日期,则会弹出msgbox,但退出该子光标时,光标已移至我的用户窗体上的下一个文本框。如何让光标相信我,我希望它返回到txtDateBox以便用户输入有效日期?代码工作正常,它只是我遇到麻烦的光标。

当用户将无效数据放入“bin”文本框时,即光标跳转到下一个文本框(当函数返回“no”时)而不是我要求光标“SetFocus”时,会发生同样的事情。< / p>

Private Sub txtbin1_exit(ByVal cancel As msforms.ReturnBoolean)
    IsItABin (val(txtbin1))
    If binNumFound = "no" Then
         MsgBox "Bin not found, please re-enter"
        txtbin1.SetFocus
    End If
End Sub

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果您在Cancel = True中写信,则会阻止光标离开文本框