MS Excel: DATEDIFF Function (VBA)
Learn how to use the Excel DATEDIFF function with syntax and examples.
The Microsoft Excel DATEDIFF function returns the difference between two date values, based on the interval specified.
The syntax for the Microsoft Excel DATEDIFF function is:
DateDiff( interval, date1, date2, [firstdayofweek], [firstweekofyear] )
Parameters or Arguments
interval is the interval of time to use to calculate the difference between date1 and date2. Below is a list of valid interval values.
|y||Day of year|
date1 and date2 are the two dates to calculate the difference between.
firstdayofweek is optional. It is a constant that specifies the first day of the week. If this parameter is omitted, Excel assumes that Sunday is the first day of the week.
firstweekofyear is optional. It is a constant that specifies the first week of the year. If this parameter is omitted, Excel assumes that the week containing Jan 1st is the first week of the year.
The DATEDIFF function can be used in the following versions of Microsoft Excel:
- Excel 2013, Excel 2011 for Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000
Type of Excel Function
The DATEDIFF function can be used in Microsoft Excel as the following type of function:
- VBA function (VBA)
Example (as VBA Function)
The DATEDIFF function can only be used in VBA code in Microsoft Excel.
Let's look at some Excel DATEDIFF function examples and explore how you would use the DATEDIFF function in Excel VBA code:
|DateDiff("yyyy", "22/11/2003", "22/11/2013")||would return 10|
|DateDiff("q", "22/11/2003", "22/11/2013")||would return 40|
|DateDiff("m", "22/11/2011", "1/1/2012")||would return 2|
For example, you could use the DATEDIFF function in VBA code and create the following function:
Function TestDates (pDate1 as Date, pDate2 as Date) as Long TestDates = DateDiff("d", pDate1, pDate2) End Function
Based on the spreadsheet above, the following Excel function would return the following values:
|=TestDates(A2, A1)||would return 1|
|=TestDates(A2, A3)||would return 349|
|=TestDates(A4, A3)||would return 14|