Массовая замена текста в файлах word

  • ivladislaw:

    Зарплата — ясное дело украинское законодательство. Сумма прописью — в гривнах, поэтому числительные женского рода. Программа писалась так, что любой профессионал ругался бы — вариантные переменные, Option Explicit отсутствует. Однако она работала без ошибок в отличие от «суммы прописью» написанной другим человеком, работавшим ранее программистом «по всем правилам» — та сумму 2 грн с копейками превращала в 11 тысяч — прямо цифру в ячейке (такое можно легко сделать намеренно, но как появилась такая ошибка?). Есть ещё программа, верстающая журналы-ордера, ведомости и оборотный баланс в Excel на основании введённой книги хозяйственных операций. Когда этот же человек проявил инициативу и поставил всем Openoffice, ссылаясь на экономию денег — я был дико злым. Это плохо повлияло на моё отношение к Open Source вообще…
    Думаю, что выложу шашки. Надо сказать, что сделал я их 6 или 7 лет назад и код, скорее всего, ужасен:)

  • Массовый поиск и замена в документах MS Office (Word и Excel)

    Имеется большое количество документов Word или Excel и в каждом документе нужно
    изменить несколько фраз. В каждом документе через замену (Найти и заменить ) это слишком долго.

    Решение:

    1. Вариант с использованием макроса
    2. a) для Microsoft Excel:
      Скопировать макрос в папку с файлами, запустить макрос, задать условия замены, заключая их в кавычки.
      выбрать любой файл из папки.

      Программа пройдётся по всем листам всех книг (*.xls;*.xlsx) в этой папке,
      и поменяет текст в заданной графе. Недостатком способа очевиден –
      замена производится только в указанной графе.
      Скачать макрос можно по ссылке

      б) для Microsoft Word:
      Создать новый документ Word, открыть редактор Microsoft VBA, добавить
      новый модуль, скопировать текст процедуры ниже. О том как создать макрос более подробно написано
      здесь.
      При выполнении макроса нужно выбрать файлы, данные в которых подлежат замене:

      Что изменить и на что изменить прописывается в теле макроса:
      что_заменить = «123»
      чем_заменить = «1234»

      Сам макрос:

    3. В виде приложения

    Для документов Word подойдет @Text Replacer — бecплaтнaя пpoгpaммa для быcтpoгo пoиcкa и зaмeны
    тeкcтa в фaйлax из выбpaннoй пaпки и влoжeнныx пoдпaпoк.
    Работает с дoкумeнтaми тeкcтoвoгo peдaктopa Word: *.doc, *.docx, *.rtf, фaйлaми тeкcтoвoгo фopмaтa:
    *.txt, *.ini, *.html, *.php и дp., paбoтa c кoтopыми вoзмoжнa чepeз cтaндapтный Блoкнoт Windows.
    Вce фaйлы дpугиx типoв oбpaбaтывaютcя пpoгpaммoй кaк тeкcтoвыe.

    Пpoгpaммoй пoддepживaeтcя пoиcк и зaмeнa мнoгocтpoчныx фpaгмeнтoв тeкcтa c учeтoм peгиcтpa и
    игнopиpуeмыx cимвoлoв — тaкиx кaк пpoбeлы и пepeвoды cтpoки (windows / *nix).
    Программа бесплатная, скачать можно по
    ссылке
    с официального сайта программы

    Не пробуйте @Text Replacer для документов Excel – программа их портит!

    Для документов Excel попробуйте FireBall.exe – небольшую программу, не требующую установки.
    Файлы Excel необходимо скопировать в папку с FireBall.exe.

    В ходе работы программа создает новые файлы, добавляя к названию приставку new.
    Скачать программу можно по
    ссылке

    Яндекс.Метрика

    Обновлено 22.09.2009г.

    По просьбе автора макроса Евгения Родыгина и в связи с появлением новой усовершенствованной версии макроса (см. заметку Макрос пакетной замены от Александра Витера) я разместил ниже ссылку на скачивание новой версии.

    Предположим, у вас есть несколько документов, в которых вам необходимо изменить определенный (одинаковый во всех документах) фрагмент текста на другой текст. Открывать эти документы по одному и вручную менять текст — утомительно. Ладно, если документов всего пять. А если их десять или того больше? Без средств автоматизации не обойтись.

    Я для подобных задач пользуюсь отличной программой @Text Replacer от отечественных разработчиков. Эта программа предназначена для многострочного поиска и замены текста в различных текстовых файлах с учетом регистра и игнорируемых символов (перевод строки, пробел и т.д.).

    Однако существует и решение на VBA (макрос), позволяющее искать и заменять фрагмент текста во всех файлах какой-либо папки. Этот макрос — Replace text on a batch of files — разработан несколькими уважаемыми людьми и опубликован на сайте Graham Mayor (Microsoft MVP).

    Работает макрос следующим образом.

    • Запускаете редактор Word и закрываете все открытые документы. Впрочем, макрос сам проверит наличие открытых документов и закроет, если обнаружит их.
    • Выполняете макрос. В процессе работы макроса открываются несколько диалоговых окон (с заголовками на английском языке, но назначение окон интуитивно понятно), в первом из которых вы сначала указываете папку с вашими файлами-документами. Далее открываются следующие окна:

      введите искомый текст и нажмите кнопку ОК

      Введите искомый текст

      введите заменяющий текст и нажмите кнопку ОК

      Введите заменяющий текст

    • Макрос осуществит все необходимые действия по замене текстовых фрагментов в ваших документах, открывая и закрывая их последовательно друг за другом.

    Скопировать код макроса можно на этой странице.

    Обновление:

    Читатель сайта Евгений Родыгин предлагает другой вариант решения данной задачи — с использованием бесплатного макроса. Вот, что он пишет:

    Большая проблема — поиск и замена текста в нескольких документах Word. Есть несколько платных программ для этого. Но есть, оказывается, бесплатный макрос от Word Search and Replace Version 2.30 Funduc Software, Inc..

    Все бы хорошо, но этот макрос не поддерживает пакетную замену. Поэтому мы с товарищем слегка переделали его для пакетной замены (ссылка для скачивания документа с макросом внизу заметки).

    На скриншоте видно, что достаточно лишь ввести нужные данные в три ячейки таблицы: путь к папке с файлами, искомый текст и текст для замены:

    Обновлено 22.09.2009г.

    По просьбе автора макроса Евгения Родыгина и в связи с появлением новой усовершенствованной версии макроса (см. заметку Макрос пакетной замены от Александра Витера) я разместил ниже ссылку на скачивание новой версии:

    Замена текста

    Простые и бесплатные программы для массовой замены текста в папках и файлах. Скачать для Windows с софт блога, программу которая способна заменить слова и целые предложения в нескольких документах.

    EasyReplaceText

    EasyReplaceText – массовая замена фрагмента текста в до…

    Простой софт предназначенный для замены фрагментов текста в текстовых файлах. Упрощает работу по поиску и замене фрагментов текста одновременно в нескольких фалах.

    16.09.2020

    @Text Replacer

    Text Replacer – поиск и замена фрагмента текста

    Мощный бесплатный инструмент для поиска и замены фрагмента текста в любых папках и файлах. Поддерживается замена целых строк, при этом можно пренебречь регистром и игнорировать спец символы (пробелы и переносы строк), также может искать в под папках выбранной папки.

    16.08.2020

    АРЕ

    АРЕ – вставка или замена текста

    Программа для поиска, удаления, вставки или замены текста в текстовых файлах. Незаменима при работе с большим количеством файлов. Очень удобна при добавлении или удалении пункта или пунктов меню на сайте, поэтому пригодится Web-дизайнерам, при обновлении сайта.

    20.06.2016

    Поиск и замена текста

    Search and replace text – поиск и замена в тексте

    Программа для поиска и замены в текстовых файлах по заданному слову или словосочетанию. Программа позволяет производить замену одностраничного и многостраничного текста, что особенно понравится программистам и веб разработчикам, когда нужно заменить целый «кусок» кода.

    14.03.2016

    Словогрыз

    Словогрыз – поиск и замена текста в документах

    Программа предназначена для поиска и замены текста по маске. Специальные символы в масках поиска и замены позволяют более гибко задавать критерии поиска текста, чем обычный поиск строковых констант в текстовых редакторах.

    31.01.2011

    Пакетная замена содержимого документов Word и Excel

    Пользователи Microsoft Office Word и Office Excel наверняка знакомы с такой замечательной функцией как “Поиск и замена”, позволяющей быстро исправлять допущенные или найденные в тексте ошибки. Впрочем, функциями поиска и замены обладают практически все, даже самые простые текстовые редакторы.

    Тут важен не сам факт наличия данной функции, а ее универсальность. Хорошо известно, каким ограниченным является функционал инструментов поиска и замены в Блокноте. В то же время Word и Excel хоть и имеют достаточно широкий набор инструментов для поиска и замены в текстовом содержимом, не поддерживают пакетную обработку документов. Этой способностью обладает Notepad++, но опять же он не поддерживает работу с форматами Microsoft Office.

    Как видите, не смотря на автоматизацию, при определенных обстоятельствах поиск и замена в тексте могут оказаться весьма трудоемкими. В таком случае вам на помощь придет замечательная утилита под названием Replace Genius. Отличительной чертой этого маленького, но очень полезного и мощного приложения является его универсальность.

    Благодаря богатому набору специализированных функций Replace Genius позволяет обрабатывать текстовые документы как по одному, так и в пакетном режиме в полном соответствии с вашими индивидуальными потребностями. Replace Genius поддерживается простой поиск и замена, работа с регулярными выражениями, смещение строк, изменение регистра, предпросмотр результатов в режиме реального времени и множество других функций.

    Пакетная замена содержимого документов Word и Excel

    Пакетная замена содержимого документов Word и Excel

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

    К тому же в Replace Genius отсутствует русский язык. Одним словом, если вы не знакомы с английским языком, вам придется потратить немало времени чтобы разобраться во всех аспектах этого приложения. Приведем простейший пример пакетной замены текстовых данных. У нас есть папка с файлами в форматах doc, txt, rtf и xls.

    Пакетная замена содержимого документов Word и Excel

    Пакетная замена содержимого документов Word и Excel

    Допустим, нам необходимо заменить слово “Windows” на “Linux”. Для этого в Replace Genius нам нужно создать пресет – шаблон, по которому утилита будет обрабатывать файлы.

    Откройте программу, в левой панели переключитесь на вкладку Replace и введите в поля “Find” и “and replace with” нужные слова. Теперь давайте сохраним эту настройку в шаблон. Нажав клавишу F12, откройте менеджер пресетов, создайте в нем папку с любым удобным вам именем и нажмите “Add”. Также вы можете отредактировать уже имеющийся там шаблон Example. Затем жмем кнопку Batch и добавляем список файлов Microsoft Office.

    Пакетная замена содержимого документов Word и Excel

    Пакетная замена содержимого документов Word и Excel

    В открывшемся опциональном окошке указываем нужный пресет, тип сохранения лучше оставить по умолчанию Save in this folder (только не забудьте указать папку, куда будут сохранены отредактированные копии) и жмем Ok. При этом откроется маленькое окошко, в котором будет обозначен список редактируемых документов.

    Жмем Start и процесс пошел! Используя такие шаблоны можно за один раз редактировать множество файлов и, причем выполняя по несколько операций подряд над каждым из них. В нашем случае мы просто заменили “Windows” на “Linux”, но заодно можно выполнить еще массу других действий.

    1 / 1 / 0

    Регистрация: 16.05.2010

    Сообщений: 6

    1

    Массовая замена однотипных данных

    16.05.2010, 11:04. Показов 14195. Ответов 15


    Студворк — интернет-сервис помощи студентам

    Господа спецы! Очень нужна проф помощь. В документах ворд необходимо массово заменять однотипные данные: Ф.И.О., адреса, и т.д.
    В ручную делать муторно и долго. Автозамена также не помогает, поскольку в текстах может быть до 10 фамилий одновременно.
    Как упростить данный процесс? Может быть есть отдельный софт для таких задач? Или можно обойтись инструментами самого ворда?
    Заранее благодарен за помощь!!!!!!!



    1



    Busine2009

    Заблокирован

    16.05.2010, 11:09

    2

    Gretta1105,
    вставьте фрагмент документа: как было и как должно стать.



    0



    1 / 1 / 0

    Регистрация: 16.05.2010

    Сообщений: 6

    16.05.2010, 11:30

     [ТС]

    3

    Сейчас попробую

    Добавлено через 17 минут
    рассмотрев надзорную жалобу Ивановой Светланы Борисовны на решение Свирского районного суда от 23 октября 2009 года и определение Судебной коллегии по гражданским делам Зарайского областного суда от 14 декабря 2009 года, состоявшиеся по гражданскому делу № 2-0000/09 по иску Ивановой Светланы Борисовны к Администрации Свирского района, Сидорову Сергею Юрьевичу о признании членом семьи нанимателя, включении в договор социального найма и по встречному иску Сидорова Сергея Юрьевича к Ивановой Светлане Борисовне об обязании не чинить препятствия в пользовании жилым помещением, выдать комплект ключей.

    рассмотрев надзорную жалобу И. на решение Свирского районного суда от 23 октября 2009 года и определение Судебной коллегии по гражданским делам Зарайского областного суда от 14 декабря 2009 года, состоявшиеся по гражданскому делу № 2-0000/09 по иску И. к Администрации Свирского района, С. о признании членом семьи нанимателя, включении в договор социального найма и по встречному иску С. к И. об обязании не чинить препятствия в пользовании жилым помещением, выдать комплект ключей.



    0



    Busine2009

    Заблокирован

    16.05.2010, 11:58

    4

    Gretta1105,
    т.е. нужно Фамилию, Имя и Отчество менять на первую букву Фамилии и ставить точку? А что с Адресом делать?



    0



    1 / 1 / 0

    Регистрация: 16.05.2010

    Сообщений: 6

    16.05.2010, 12:23

     [ТС]

    5

    вместо адреса например: зарегистрирован по адресу: город Москва, красная площадь, д.1

    надо: зарегистрирован по адресу: <…>



    0



    Busine2009

    Заблокирован

    16.05.2010, 12:27

    6

    Gretta1105,
    а откуда берутся вот эти документы, кто их делает?

    Visual Basic
    1
    
    рассмотрев надзорную жалобу Ивановой Светланы Борисовны на решение

    .
    Т.е. вместо адреса надо вот такие скобки сделать? <…..>
    А ещё что-нибудь надо менять? Или получается только 2 пункта меняется: ФИО и адрес?



    0



    1 / 1 / 0

    Регистрация: 16.05.2010

    Сообщений: 6

    16.05.2010, 12:52

     [ТС]

    7

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

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



    0



    Busine2009

    Заблокирован

    16.05.2010, 13:31

    8

    Gretta1105,
    я не могу предложить автоматическую замену.
    Есть вариант, что будет выделяться ФИО или адрес и будет предложено 2 варианта: Заменить или Не заменить, затем будет осуществлён переход к следующей ФИО или адресу.
    Т.е. замена будет полуавтоматическая.

    Добавлено через 15 минут

    Цитата
    Сообщение от Gretta1105
    Посмотреть сообщение

    Автозамена также не помогает,

    это как?



    0



    1 / 1 / 0

    Регистрация: 16.05.2010

    Сообщений: 6

    16.05.2010, 19:08

     [ТС]

    9

    ну можно посмотреть на практике. у нас сейчас вообще пока выбора нет, так что будем благодарны любой помощи

    Добавлено через 34 секунды
    а в чем суть такого варианта?



    0



    Busine2009

    Заблокирован

    16.05.2010, 19:14

    10

    Gretta1105,
    я ещё не знаю, смогу ли я это сделать.
    А смысл будет в следующем:
    На Панель инструментов выводится кнопка. Нажимаем кнопку, появляется диалоговое окно с двумя, а может и большим количеством кнопок и выделяется ФИО. Если действительно выделено то, что нужно, то нажимаем кнопку Принять, ФИО заменяется на Ф. и выделяется следующие ФИО. И так до конца документа. Если выделено не то, что нужно, то нажимаем кнопку Пропустить и движемся дальше. Вероятно, какие-то ФИО останутся и надо будет потом снова проверять весь документ.



    0



    1 / 1 / 0

    Регистрация: 16.05.2010

    Сообщений: 6

    16.05.2010, 19:26

     [ТС]

    11

    понятно. Просто было предложение записать макросс. Пробовал но у меня не получилось. Видимо не хватает знаний



    0



    Busine2009

    Заблокирован

    18.05.2010, 22:01

    12

    Gretta1105,
    1. ФИО можно менять вручную: Правка – Найти и заменить, используя вот эту строку + надо галочку поставить «Подстановочные знаки»:
    Иванов*[а-я]*[ ]Иван*[а-я]*[ ]Иванович*[а-я][ -.]
    Правда в этом случае «Иванов Иван Иванович- хороший человек» будет удалено и тире. Т.е. надо, чтобы за ФИО стразу шёл пробел или точка.
    2. Есть макрос. Чтобы его вставить: Сервис – Макрос – Редактор Visual Basic – Пр. кн. мыши по Normal – Insert Module – дважды щ. пр. кн. мыши по Module 1 и вставляете туда этот код – Нажимаете «Треугольник (Run)». Если макрос подходит, то можно его поместить на Стандартную панель инструментов.

    Visual Basic
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
    Sub m_2()
    Dim myArray() As String
    Dim a As String
    Dim b As String
    Dim c As String
    Dim response As String
    Dim x As String
    Dim y As String
    Dim z As Long
     
    response = InputBox("Введите ФИО без окончаний с Большой буквы." & vbCr & "Пример:" & vbCr & vbTab & "Ивановым - Иванов" & vbCr & vbTab & "Иваном - Иван" & vbCr & vbTab & "Ивановичем - Иванович")
     
    If response = "" Then
        Exit Sub
    End If
     
    myArray() = Split(response)
     
    If UBound(myArray()) <> 2 Then
        MsgBox "Не правильно ввели данные - попробуйте ещё раз"
        Exit Sub
    End If
     
    a = myArray(0)
    b = myArray(1)
    c = myArray(2)
     
    x = a & "*[а-я]*[ ]" & b & "*[а-я]*[ ]" & c & "*[а-я]"
    y = Left(a, 1) & "."
     
    With ActiveDocument.Range.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = x
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
        While .Execute
            z = z + 1
            .Parent.Select
            Selection.MoveRight unit:=wdWord, Extend:=wdExtend
            Selection.Text = y
        Wend
    End With
    If z > 0 Then
        MsgBox "Было произведено замен:" & vbCr & z
    Else
        MsgBox "Замены никакой не было, попробуйте ещё раз, обращая внимание на большие и маленькие буквы"
    End If
    End Sub

    Недочёт этого макроса в том, что в этом случае: За столом сидел Иванов Иван Иванович. Получится За столом сидел И..

    Если вы хорошо знаете документы и знаете, что ничего не слетит, то можно заменить «2 точки» на «1 точку».

    Если вы также хорошо знаете документ, то нужно провести замену «пробел + точка» на «точка».



    0



    5561 / 1367 / 150

    Регистрация: 08.02.2009

    Сообщений: 4,107

    Записей в блоге: 30

    19.05.2010, 02:08

    13

    Цитата
    Сообщение от Gretta1105
    Посмотреть сообщение

    Господа спецы!..

    Вот вам вразумительная ссылка: http://www.interface.ru/home.asp?artId=2958

    ФИО, написанные:

    • кириллицей
    • через пробел(ы)
    • с больших букв
    • не менее чем двубуквенные (Ия Лукинична Ли)
    • в любых падежах
    • без двойных фамилий и апострофов (как Иванов-Вано, О’Рейли)
    • без идущих непосредственно перед этими ФИО слов с загл. буквы (как то: Просим Ким Ир Сена…)

    Word позволяет корректно сократить до инициала с точкой в два шага (см. рисунки).

    Чтоб вам не путаться, оба выражения (достаточно лишь второе) скопируйте (пробел важен!):
    <([А-Я])[А-я]@> @<[А-Я][А-я]@> @<[А-Я][А-я]@>.
    <([А-Я])[А-я]@> @<[А-Я][А-я]@> @<[А-Я][А-я]@>[!.]

    Т. о., настроив поиск, вы очень быстро замените если не все сразу, то поочерёдно нужные вам ФИО.

    Миниатюры

    Массовая замена однотипных данных
     

    Массовая замена однотипных данных
     



    0



    5561 / 1367 / 150

    Регистрация: 08.02.2009

    Сообщений: 4,107

    Записей в блоге: 30

    19.05.2010, 02:40

    14

    В итоге я и сам запутался! Второе выражение (для замен не в конце предложений)* таково:
    <([А-Я])[А-я]@> @<[А-Я][А-я]@> @<[А-Я][А-я]@>([!.])

    Заменять его следует на:
    1.2

    1 — это и есть 1-й инициал (первые скобки); . это точка; 2 — вторые скобки: символ текста (сразу за отчеством), но не точка.
    ____________________________

    * а Вам такие в основном и нужны!



    0



    Busine2009

    Заблокирован

    19.05.2010, 21:19

    15

    Sasha_Smirnov,
    я не всматривался в той код, но если будет такая ситуация, что подряд будут идти 3 слова, начинающиеся с Большой буквы? Что в этом случае делать?



    0



    5561 / 1367 / 150

    Регистрация: 08.02.2009

    Сообщений: 4,107

    Записей в блоге: 30

    21.05.2010, 03:34

    16

    Цитата
    Сообщение от Busine2009
    Посмотреть сообщение

    Если выделено не то, что нужно, то нажимаем кнопку Пропустить и движемся дальше. Вероятно, какие-то ФИО останутся и надо будет потом снова проверять весь документ.

    Только вместо Пропустить — Найти далее!

     Комментарий администратора 
    Ссылки на форумы запрещены



    0



    Понравилась статья? Поделить с друзьями:
  • Мастер импорта данных в excel
  • Массовая замена текста excel
  • Мастер задач в excel
  • Массовая замена слов в word
  • Мастер диаграммы в excel где отображаются