How to find the difference between dates in VBA

前端 未结 3 1626
一生所求
一生所求 2020-12-20 15:43

I am trying to find out the difference between the system date and the date stored in the worksheet. If the difference between them is > 30 days, the result is true, else th

3条回答
  •  一个人的身影
    2020-12-20 16:23

    sDate is a STRING, which is NOT a Real Date!

    Convert your string to a date, using either the CDate() function or the DateValue() function.

    However, there is a caveat in this kind of conversion. These conversion will handle the following structures:

    yyyy/mm/dd
    yyyy/m/d
    mm/dd/yyyy
    m/d/yyyy
    

    These will not be correctly converted

    dd/mm/yyyy
    d/m/yyyy
    

    And avoid using any 2-digit year.

    I would advise using the DateSerial() function for date conversion.

    So regarding your code, assuming that the values on yor sheet are actually dates (to be certain, simply select the column and change the Number Format to GENERAL. If they are real dates, each will display a PURE NUMBER. Remember to hit UNDO to get your Date Format back)

    Dim result As Boolean
    
    If Worksheets("dates").Cells(1, 1).Value - Date > 30 Then
         result = True
    Else
         result = False
    End If
    

提交回复
热议问题