因此,我已經瀏覽了本網站上的許多問題以回答此問題,並且我相信我的代碼是正確的,但它仍然無法正確驗證。我不明白爲什麼。使用VBA檢查日期是否在兩個日期之間
我所試圖做的事:
我在Excel中使用用戶窗體。我有一個日期輸入框和日曆選取器。當其中一個更改時,另一個更新。我正在嘗試驗證輸入框中輸入的日期是否爲有效日期,並在兩年時間範圍內,如果是,則更新日曆選擇器。
錯誤:
- 如果一個錯誤的日期輸入到輸入框中,然後該程序 出現了錯誤,因爲它不能與無效 日期更新日曆選取。 (這是一箇舊的錯誤,因此我做了驗證檢查)
- 如果輸入任何有效日期,它將不會在「If」語句中正確驗證。
例如:
如果我進入2016年2月18日,應該看到它是一個有效的日期,遲於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相同? –
是weekInput.Value真實日期還是真實日期的文本表示?通過將tempDate,oldDate和lateDate聲明爲Date類型,而不是鍵入Variant,會更好。 –
對於你在評論中的第二個問題:'#2/18/16#=#2/18/2016#' –