2012-08-15 3 views
2

텍스트 상자에 특정 날짜 형식을 설정하는 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 년을 더한 날짜가 아니라는 것을 확인하고 싶습니다.

그래서 :

  • DateStg> 오늘 - 사전에 도움을 1개월
  • DateStg < 오늘 + 일년

감사합니다. 그냥 날짜를 확인하려면

답변

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

, 비교하려면 날짜를 얻기 위해 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") 
관련 문제