Изменение формата существующих дат (Microsoft Word)
Эйлин работает с множеством документов, в которых дата указывается в числовом формате, например, 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 [Изменение формата существующих дат]
.