Please Note: This article is written for users of the following Microsoft Word versions: 2007, 2010, 2013, 2016, 2019, and Word in Office 365. If you are using an earlier version (Word 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Word, click here: Generating a List of Dates.
by Allen Wyatt
(last updated April 7, 2020)
For some documents, it is helpful to have a list of dates that you can use as the basis for your work. For instance, you may have to create a report that lists all the dates between now and the end of the year, along with a person's name or a project name to the right of the date. The starting point, of course, is getting the list of dates.
There are a couple of ways you can approach generating the list. One easy method is to use Excel in conjunction with Word. Excel's AutoFill feature makes generating a list of dates amazingly easy. Once you have the list in Excel, you can then copy and paste it into the Word document, or you can use mail merge to merge the dates into the document (if that approach is appropriate for your needs).
If you prefer to not use Excel for some reason, the best solution is to use a macro. The following macro very quickly creates a list of all the dates for the year 2021:
Sub PrintYearDays() Dim DateToday As Date Dim T As Integer 'Because the date is going to be changed, save it DateToday = Date Date = #12/31/2020# For T = 1 To 365 Selection.TypeText Text:=Format(Date + T, _ "mmmm dd yyyy") Selection.TypeParagraph Next T 'Restore today's date Date = DateToday End Sub
Notice that the macro works by resetting the date on your system. Today's current date is stored in the DateToday variable, and then the date is reset to the starting date for your range. If you want to have the macro work for some other date range, just change the starting date, along with the ending value of the For ... Next loop.
If you need to create date lists, and you never quite know what the beginning and ending dates in the range will be, then a different macro approach makes more sense. The following macro asks you for both a beginning and ending date:
Sub ListDates() Dim ListDate as Date Dim StartDate As Date Dim EndDate As Date Dim Repeats As Integer 'Gets user input StartDate = InputBox("Please enter the starting date.", _ "Start Date", "Start Date") EndDate = InputBox("Please enter the ending date.", _ "End Date", "End Date") 'Enters the start date in the document Selection.TypeText Text:=Format(StartDate, _ "dddd, MMMM dd, yyyy") Selection.TypeText (vbCr & vbLf) 'Determines the number of dates to print Repeats = DateDiff("d", StartDate, EndDate) 'Loops to print the list of dates For i = 1 To Repeats ListDate = DateAdd("d", i, StartDate) Selection.TypeText Text:=Format(ListDate, _ "dddd, MMMM dd, yyyy") Selection.TypeParagraph Next i End Sub
The StartDate and EndDate variables, set by your input, determines how many times the For ... Next loop is repeated.
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (13155) applies to Microsoft Word 2007, 2010, 2013, 2016, 2019, and Word in Office 365. You can find a version of this tip for the older menu interface of Word here: Generating a List of Dates.
Do More in Less Time! Are you ready to harness the full power of Word 2013 to create professional documents? In this comprehensive guide you'll learn the skills and techniques for efficiently building the documents you need for your professional and your personal life. Check out Word 2013 In Depth today!
When you paste information into a document, Word normally displays a small icon to the right of what you pasted. Some ...Discover More
If you get tired of documents that always seem to have extra spaces at the end of lines, here's a quick way to get rid of ...Discover More
One of the final touches you can add to a document is to hyphenate it. This allows text to flow more smoothly from line ...Discover More
Got a version of Word that uses the ribbon interface (Word 2007 or later)? This site is for you! If you use an earlier version of Word, visit our WordTips site focusing on the menu interface.