Автор Тема: Word VBA Макросы: Как заменить в тексте неизвестное слово между известными словами?  (Прочитано 283 раз)

Оффлайн Dendro

  • Посетитель форума
  • Сообщений: 5
В вордовском файле встречается фраза: "Длина пути составляет 100 км." Причем километров может быть и "10 000" и "10,05" и "10.05" и т.д. - файлов много и написано по-разному. Мне нужно вставить вместо количества километров свою переменную. Подскажите пожалуйста как это можно осуществить.

Вариант с закладками не подходит, т.к. программа будет работать с другими файлами и даже вероятно на другом компьютере. Мне необходимо как-то найти текст между словами "Длина пути составляет" и "км" и вставить туда свой текст. Или как-то по другому. Я даже не соображу пока.

Искомая фраза встречается один раз, то есть нужно сделать только одну замену.

[вложение удалено администратором]

Онлайн Администратор

  • Administrator
  • Сообщений: 1637
В коде, в пункте 1 укажите нужные данные.

Макрос
Sub Макрос()

    Dim NewValue As String
   
   
    '1. Запишите в переменную число, которое надо подставить.
    NewValue = 200
   
    '2. Замена всех вхождений.
    With ActiveDocument.Range.Find
        .Text = "(Длина пути составляет )(*)( км.)"
        .Replacement.Text = "\1" & NewValue & "\3"
        .MatchWildcards = True
        .Execute Replace:=wdReplaceAll
    End With
   
    '3. Сообщение.
    MsgBox "Готово.", vbInformation
   
End Sub

Оффлайн Dendro

  • Посетитель форума
  • Сообщений: 5
Спасибо вам большущее. Четко и толково. Всё работает.