AlexVrag
@AlexVrag

Пакетная замена текста на другой в папке

Есть папка Мои Документы в которой очень много файлов.
Задача: нужно во всех файлах (.doc и .docx) поменять строку1 на строку2.
Подскажите чем или как?
  • Вопрос задан
  • 5083 просмотра
Пригласить эксперта
Ответы на вопрос 3
С помощью макроса VBA в Word'е.
Я бы использовал кнопку, вызывающую диалог открытия файлов, а потом итеративно для каждого файла вызывал функцию, которая его открывает, заменяет строку, закрывает.

Public Sub SelectFilesForImport()
    Dim fd As FileDialog
    Dim objfl As Variant
    Dim filnam As String
        
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = True
        .Filters.Add "Word", "*.doc;*.docx;*.docm"
        .InitialView = msoFileDialogViewDetails
        .Show
        For Each objfl In .SelectedItems
            filnam = objfl
            Call ReplaceInFile(filnam)
        Next objfl
        On Error GoTo 0
    End With
    
    Set fd = Nothing
    
End Sub

Private Sub ReplaceInFile(FileName As String)
    ' Open 
    Set childword = Application.Documents.Open(FileName)
    
    With childword.Content.Find
        .Text = "$%Registrador%$" ' Your search string
        .Replacement.Text = ":O" ' Replace with this
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute replace:=wdReplaceAll
    End With

    childword.Save
    childword.Close
    
End Sub
Ответ написан
Комментировать
rasa
@rasa
Искал бесплатный софт, который умеет это. Не нашел. Странно.
Везде ссылка на уже упомянутый макрос замены. Кстати, вот его варианты и обсуждение на сайте wordexpert.ru

P. S. Интересно: знает кто-нибудь бесплатную программу, которая умеет это?
Ответ написан
Комментировать
AlexVrag
@AlexVrag Автор вопроса
Спасибо.
Нашел рабочий вариант: wordexpert.ru/page/makros-paketnoj-zameny-ot-aleksandra-vitera
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы