Найти и заменить текст нижнего колонтитула в Word макросом Excel VBA - PullRequest
3 голосов
/ 05 апреля 2019

Я пытаюсь создать макрос в Excel , который открывает документ Word , найти конкретный текст, который находится внутри нижнего колонтитула в word doc и замените его на текст.

В данный момент мой макрос открывает слово doc, но я не мог понять, как попасть в нижний колонтитул и найти эти тексты.

    Dim objWord
    Dim objDoc
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Open(ThisWorkbook.Path & "/NotaPromissoriaAutomatica.docx")
    objWord.Visible = True

В нижнем колонтитуле есть два текста, которые необходимо заменить

1 - VAR_CIDADE> Какой будет заменен текущий город (который находится в А1 моей таблицы Excel)
2 - VAR_DATA> Какой будет заменена текущая дата (которая находится в A2 моей таблицы Excel)

1 Ответ

0 голосов
/ 05 апреля 2019

Я создал тестовый документ с одной страницей, верхним и нижним колонтитулами, причем нижний колонтитул использовал ключевое слово "VAR_DATA". Пример кода ниже будет искать все нижние колонтитулы в документе и выполнять замену. Обратите внимание, что код только ищет в Section(1). Если у вас есть больше разделов, вам, возможно, придется создать внешний цикл для поиска каждого нижнего колонтитула в каждом разделе.

Option Explicit

Public Sub FixMyFooter()
    Dim myWord As Object
    Dim myDoc As Word.Document
    Set myWord = CreateObject("Word.Application")
    Set myDoc = myWord.Documents.Open("C:\Temp\footertest.docx")

    Dim footr As Word.HeaderFooter
    For Each footr In myDoc.Sections(1).Footers
        With footr.Range.Find
            .Text = "VAR_DATA"
            .Replacement.Text = Format(Now(), "dd-mmm-yyyy")
            .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindStop
        End With
    Next footr

    myDoc.Save
    myWord.Quit
End Sub

Вам нужно будет расширить пример, чтобы найти дополнительный текст с вашим собственным форматированием.

...