Эйлин работает с множеством документов, в которых дата указывается в числовом формате, например, 22 сентября 2012 года. Ей нужно преобразовать эти даты в другой формат, а именно в 22 сентября 2012 г. Она задается вопросом, есть ли простой способ внести изменения, не вводя каждую дату заново.

Ответ во многом зависит от характера изменяемой даты. Даты в документе Word могут быть в виде обычного текста или поля. Вы можете определить, является ли дата полем, просто переместив курсор куда-нибудь внутрь даты. Если это поле, то вся дата должна быть заштрихована светло-серым цветом, как только точка вставки окажется внутри даты.

Если дата является полем, вы можете щелкнуть дату правой кнопкой мыши и выбрать «Редактировать поле» в появившемся контекстном меню. Затем вы можете изменить поле, в том числе выбрать другой формат даты в списке свойств поля.

Если дата является обычным текстом (а не полем), вам нужно искать другое решение. Можно пройтись по документу и вручную перепечатать все даты, но Эйлин уже обнаружила, что такой подход утомителен. Здесь может пригодиться макрос: избавиться от скуки, программно выполняя то, что в противном случае вы делали бы вручную.

Следующий макрос будет проходить по документу, ища все даты в формате m / 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), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (3400) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Changing_the_Format_of_Existing_Dates [Изменение формата существующих дат].