Массовый поиск и замена

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

Что делать? В соответствии с мыслью, высказанной в других выпусках WordTips, каждый раз, когда у вас есть что-то обыденное и утомительное, вы можете часто использовать макрос, который сделает эту работу за вас. Например, вы можете написать макрос, который будет проходить по всем документам в каталоге, загружать каждый по очереди, искать и изменять необходимый текст и повторно сохранять документ. Этот процесс ничем не отличается от процесса, который вы выполняете вручную, за исключением того, что он выполняется под управлением макроса. Это делает его намного проще и быстрее.

Ниже приводится пример макроса, который может помочь:

 Public Sub MassReplace () с Application.FileSearch.  LookIn = "C: " 'где искать .SearchSubFolders = True' искать во вложенных папках .FileName = "* .doc" 'шаблон файла для соответствия' если совпадений более одного, выполнить следующий код Если .Execute ()> 0  Затем «чтобы отобразить, к скольким файлам будет обращаться этот макрос», раскомментируйте следующую строку кода «MsgBox« Found »& .FoundFiles.Count &« file (s) ».  'для каждого найденного файла запустите этот цикл For i = 1 To .FoundFiles.Count' откройте файл на основе его позиции в индексе Documents.Open FileName: =. FoundFiles (i) 'выполните поиск и замените название компании selection.Find.  ClearFormatting selection.Find.Replacement.ClearFormatting With selection.Find .Text = "OldCompanyName" .MatchCase = True .Replacement.Text = "NewCompanyName" End With selection.Find.Execute Replace: = wdReplaceAll 'заменить уличный адрес на selection.Find.  Text = "OldStreetAddress" .Replacement.Text = "NewStreetAddress" Конец с selection.Find.Execute Replace: = wdReplaceAll 'заменить город, штат и почтовый индекс на selection.Find .Text = "OldCityStateAndZip" .Replacement.Text = "  NewCityStateAndZip «Конец с выделением.Find.Execute Replace: = wdReplaceAll» сохранить и закрыть текущий документ ActiveDocument.Close wdSaveChanges Next i Else », если система не может найти никаких файлов» с расширением .doc MsgBox «Файлы не найдены».  End If End WithEnd Sub 

Этот макрос довольно мощный и позволяет вам не только изменить название компании, но и адрес вашей компании. Все, что вам нужно сделать, это внести изменения, чтобы указать, какой каталог и диск использовать при поиске, а также какова старая и новая информация о компании..

Если работа с макросами выходит за рамки того, чем вы хотите заниматься, существует также ряд различных коммерческих продуктов, которые будут работать с документами Word. Различные подписчики предлагали следующие программы:

  • WordFisher (http://www.wordfisher.com/wf4.htm)
  • Word Search и Заменить (http://www.funduc.com/word_sr.htm)
  • InfoRapid Search & Replace (http://www.inforapid.com/html/searchreplace.htm)
  • MegaReplacer (http://www.editorium.com/14843.htm)
Оцените статью
Frestage.ru
Добавить комментарий