How to find the difference between dates in VBA

Ank picture Ank · Nov 22, 2011 · Viewed 46.3k times · Source

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 the result is false

Dim result as boolean
Dim sDate as string
sDate = Date
if Worksheets("dates").Cells(1,1) - sDate > 30 then 'how do I do this?
     result = true
else
     result = false
end if

How do I find out the difference in days between the system date and the date stored in the worksheet? The date in the worksheet can be a past date, too.

Answer

Justin Self picture Justin Self · Nov 22, 2011

I wonder why I rarely see people using the date functions.

You can also use this:

if DateDiff("d", date1, date2) > 30 then

in this case, date1 would be CDate(Worksheets("dates").Cells(1,1)) and date2 would be sdate (either cast with CDate or dim'd as a date as Jeff said.

"d" means we are getting the difference in days. Here are the intervals for years, months, etc. in VBA:

yyyy - Year
q - Quarter
m - Month
y - Day of year
d - Day
w - Weekday
ww - Week
h - Hour
n - Minute
s - Second