Что нового

Автоматизация Поиск и замена в колонтитуле Word

Double_Ax

Новичок
Сообщения
1
Репутация
0
Доброго времени суток.
Имею подобный код:
Код:
#include <Word_new.au3>

Local $oWord = _Word_Create(False, True) ;Создаем экземппляр Word
Local $oDoc = _Word_DocAdd($oWord, Default, $dot) ;Добавляем документ на основе шаблона

$ColName = "имя"
$sCellValue = "Вася"

_Word_DocFindReplace($oDoc, "<" & $ColName & ">", $sCellValue) ; Поиск и замена тэгов на значения переменной

_Word_DocSaveAs($oDoc, "C:\OutDir\" & $ColName & ".doc") ; Сохраняем документ
_Word_DocClose($oDoc) ; Закрываем документ
_Word_Quit($oWord, 0) ; Закрываем экземпляр Word


Для меня обнаружилась проблема в следующем:
если тэг <имя> расположен в колонтитуле документа - замена не происходит. Как объяснить функции _Word_DocFindReplace, что надо искать и в колонтитулах?
Спасибо.
 

ra4o

AutoIT Гуру
Сообщения
1 151
Репутация
240
Попробуйте так :
Код:
#include <Word.au3>

Local $oWord = _Word_Create(False, True) ;Создаем экземппляр Word
Local $oDoc = _Word_DocAdd($oWord, Default, $dot) ;Добавляем документ на основе шаблона

$ColName = "имя"
$sCellValue = "Вася"

_Word_DocFindReplace($oDoc, "<" & $ColName & ">", $sCellValue) ; Поиск и замена тэгов на значения переменной
;замена в верхнем колонтитуле:
$oDoc.Sections(1).Headers(1).Range.Find.Execute($ColName, False, False, False, False, False, False, $WdFindContinue, False, $sCellValue, $WdReplaceAll)
;замена в нижнем колонтитуле:
$oDoc.Sections(1).Footers(1).Range.Find.Execute($ColName, False, False, False, False, False, False, $WdFindContinue, False, $sCellValue, $WdReplaceAll)
_Word_DocSaveAs($oDoc, "C:\OutDir\" & $ColName & ".doc") ; Сохраняем документ
_Word_DocClose($oDoc) ; Закрываем документ
_Word_Quit($oWord, 0) ; Закрываем экземпляр Word
 
Верх