生成日期列表(Microsoft Word)
对于某些文档,列出可以用作工作基础的日期会很有帮助。例如,您可能必须创建一个报告,该报告列出从现在到该年末的所有日期,以及该日期右边的人名或项目名称。
当然,起点是获取日期列表。
您可以通过两种方法来生成列表。一种简单的方法是将Excel与Word结合使用。 Excel的自动填充功能使生成日期列表非常容易。在Excel中拥有列表后,就可以将其复制并粘贴到Word文档中,或者可以使用邮件合并将日期合并到文档中(如果该方法适合您的需要)。
如果由于某些原因您不想使用Excel,最好的解决方案是使用宏。下面的宏非常快速地创建了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
请注意,该宏通过重置系统日期来起作用。
今天的当前日期存储在DateToday变量中,然后将日期重置为您范围的开始日期。如果您希望宏在其他日期范围内工作,则只需更改开始日期以及For … Next循环的结束值即可。
如果您需要创建日期列表,而又从不完全知道范围中的开始日期和结束日期,那么使用另一种宏方法更有意义。以下宏要求您提供开始日期和结束日期:
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
由您的输入设置的StartDate和EndDate变量确定重复For … Next循环的次数。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13155)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的较旧菜单界面: