Written by Allen Wyatt (last updated February 13, 2021)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and 2021
When creating macros in VBA, you may have a need to know the specific day of the month represented by a particular date. For instance, you may want to determine the day of the month on which the macro is being executed. The following code will do the trick:
iDay = Day(Date)
The Day function returns an integer value representing the day of the month of whatever date you provide. In this example, the Date function represents today's date, and so Day returns today's day of the month.
You can also, if you prefer, use the Format function to return a text string that contains the day of the month. For instance, consider this code:
sTemp = Format(Date,"dd")
This returns the day of the month as two digits with a leading zero. You could replace "dd" with other variations; "d" returns the date without a leading zero, "ddd" returns the short day name for the day of the month (as in "Wed" or "Fri"), and "dddd" returns the full day name (as in "Wednesday" or "Friday").
Note, however, that Format returns a string. If your subsequent computations require a numeric value, then it is best to use the Day function.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (9640) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and 2021. You can find a version of this tip for the older menu interface of Excel here: Determining the Day of the Month.
Save Time and Supercharge Excel! Automate virtually any routine task and save yourself hours, days, maybe even weeks. Then, learn how to make Excel do things you thought were simply impossible! Mastering advanced Excel macros has never been easier. Check out Excel 2010 VBA and Macros today!
If you run a macro you used in an older version of Excel on a newer system, it may seem like the macro runs slower. Here ...
Discover MoreWant a quick way to convert positive values to negative and vice versa? You can create your own plus/minus button by ...
Discover MoreWant a quick way to jump to the end of your data entry area in a worksheet? The macro in this tip makes quick work of the ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2021-02-13 09:10:38
Brian P
You refer to “day of the month” in this tip, but in places (“ddd” & “dddd”) it appears to be talking about “day of the week” (e.g., Monday, Tuesday, Wednesday). “Day of the month” would refer to the number (1-31).
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2025 Sharon Parq Associates, Inc.
Comments