如何在ErrorHandler之后返回上一行?

时间:2019-07-16 17:50:25

标签: excel vba

很抱歉这个问题的基础。只是想在这里学习VBA。

我有以下代码

On Error GoTo ErrorHandler
    YourDoB = InputBox("Enter your date of birth")
ErrorHandler:        ' Error-handling routine.
Select Case Err.Number   ' Evaluate error number.
      Case 13   ' Wrong type'
         MsgBox ("That is not a date!")
End Select

我要这样做,以便如果此人介绍了无效的出生日期,则在错误消息之后,再次出现输入框,要求DOB,直到给出正确的答案为止。知道如何最好地做到这一点吗?

1 个答案:

答案 0 :(得分:1)

也许是这样,使用IsDate来验证输入。

Sub Test()
    Dim rawInput As Variant, yourDOB As Date

    Do
        rawInput = InputBox("Enter your date of birth")

        If Not IsDate(rawInput) Then
            MsgBox "That is not a date!"
        Else
            yourDOB = CDate(rawInput)
        End If

    Loop While Not IsDate(rawInput)
End Sub