我的VBA代码中有一个函数,它为文本框设置了特定的日期格式。
这是我验证日期格式正确的代码:
Function CheckDate(DateStg As String) As Boolean
If DateStg = "" Then
' Accept an empty value in case user has accidentally moved to a new row
CheckDate = True
lblMessage.Caption = ""
Exit Function
End If
If IsDate(DateStg) Then
CheckDate = True
lblMessage.Caption = ""
Else
CheckDate = False
lblMessage.Caption = "Sorry I am unable to recognise " & DateStg & " as a date."
End If
End Function
除了检查文本框中的日期是否是实际日期之外,我还需要验证文本框日期是否不小于当前日期减去1个月,并且。此外,我想验证日期不超过当前日期加1年。
所以:
提前感谢您的帮助。
答案 0 :(得分:3)
您可以使用一些功能:
''Assume date is not good
DateOK=False
If IsDate(DateStg) Then
If DateStg > dateAdd("m",-1,Date()) _
And DateStg < dateAdd("m",12,Date()) Then
''Date is good
DateOK=True
End If
End if
在大多数情况下,文本框可以设置为仅接受日期,您可以设置验证规则以检查范围,因此可能不需要代码。
答案 1 :(得分:1)
如果您只想查看日期,可以使用DateAdd函数获取要比较的日期:
'Subtract a month from today and return it as a string
Format(DateAdd("m", -1, Now), "yyyy-mm-dd")
'Add a year to today and return it as a string
Format(DateAdd("yyyy", 1, Now), "yyyy-mm-dd")