Aileen处理许多日期为数字格式(例如9/22/12)的文档。她需要将这些日期转换为其他格式,特别是2012年9月22日。她想知道是否有一种简便的方法来进行更改而无需重新输入每个日期。

答案很大程度上取决于您更改日期的性质。 Word文档中的日期可以是纯文本或字段。您可以通过简单地将插入点移动到日期内的某处来判断日期是否为字段。如果是字段,则一旦插入点在日期内,则整个日期应以浅灰色阴影显示。

如果日期是一个字段,则可以右键单击该日期,然后从出现的上下文菜单中选择“编辑字段”。然后,您可以修改字段,包括在“字段属性”列表中选择其他日期格式。

如果日期是常规文本(不是字段),则需要寻找其他解决方案。可以浏览文档并手动键入所有日期,但是Aileen已经发现这种方法很繁琐。这是宏可以派上用场的地方:通过编程来完成您原本要手工完成的工作,以治愈乏味。

下面的宏将逐步浏览文档,以m / d / yyyy格式搜索所有日期。 (月份或日期可以是一位或两位数字,但年份必须是四位数字。)如果找到与该模式匹配的日期,则将其转换为格式mmmm d,yyyy。

Sub GetDateAndReplace()

Dim FoundOne As Boolean

Selection.HomeKey Unit:=wdStory, Extend:=wdMove     FoundOne = True ' loop at least once

Do While FoundOne ' loop until no date is found         With Selection.Find             .ClearFormatting             .Replacement.ClearFormatting             .Text = "([0-9]{1,2})[/]([0-9]{1,2})[/]([0-9]{4})"

.Format = True             .Forward = True             .MatchWildcards = True         End With

Selection.Find.Execute Replace:=wdReplaceNone

' check the find to be sure it's a date         If IsDate(Selection.Text) Then             Selection.Text = Format(Selection.Text, "mmmm d, yyyy")

Selection.Collapse wdCollapseEnd         Else ' not a date - end loop             FoundOne = False         End If     Loop End Sub

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(12197)适用于Microsoft Word 2007和2010。您可以在这里找到适用于Word的较早菜单界面的本技巧的版本: