我在这个网站上查看了很多问题来回答这个问题,我相信我的代码是正确的,但它仍然无法正确验证。然而,我无法弄清楚原因。
我想做什么:
我在Excel中使用用户表单。我有一个日期输入框和一个日历选择器。当其中一个更改时,另一个会更新。我试图验证输入框中输入的日期是否为有效日期,并且在两年时间范围内,如果是,则更新日历选择器。
错误:
- 如果将错误的日期输入到输入框中,则程序会出错,因为无法使用无效日期更新日历选择器。(这是一个旧错误,因此我进行验证检查)
- 如果输入任何有效日期,则在“if”语句中无法正确验证。
例如:
如果我输入2/18/2016,则应该看到它是一个有效日期,晚于oldDate并且比lateDate新。然后使用输入框的值更新日历选择器。但是,使用此代码时,它总是重置输入框的值并显示未验证的消息。
代码:
Private Sub weekInput_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim tempDate
Dim oldDate
Dim lateDate
tempDate = weekInput.Value
oldDate = Date - 365
lateDate = Date + 365
'Doing this to try and error check if an invalid date is given. Doesn't work for some reason.
If IsDate(tempDate) And tempDate > oldDate And tempDate < lateDate Then
'Find date of that week's Monday
weekPicker.Value = weekInput.Value
Else
weekInput.Value = weekPicker.Value
MsgBox "Didn't verify"
End If
End Sub
#2/18/16# = #2/18/2016#
- Ron Rosenfeld