Что нового

Нужно с Autoit передать значение переменной в поле WORD

Tiberium6

Новичок
Сообщения
51
Репутация
0
Здравствуйте, Вот сделал файл WORD c полем,например: Поле {MERGEFIELD дата\* MERGEFORMAT}
я хочу что бы из autoit
Код:
$date = "07.02.2013"
данные этой переменной перенеслись в Word в поле которое я указал выше, в скрытом формате..


Добавлено:
Сообщение автоматически объединено:

редактировать не смог сообщение, вот такая ошибка "Wrong value type sent to the database. Array of integers expected. (attachment_list)" поэтому отвечаю.
нашел в VBA
Код:
ActiveDocument.mergefield("wwe").Value = "dete" 
ActiveDocument.Fields.Update
как этот код передать из autoit в word
 
Автор
T

Tiberium6

Новичок
Сообщения
51
Репутация
0
Код:
#include <Word.au3>

$FIO = "Иванов Иван Иванович"

$oWordApp = _WordCreate (@ScriptDir & "\1.doc",0,0) ;~ Данные параметры 0 - делает все в скрытом режиме
$oDoc = _WordDocGetCollection ($oWordApp, 0)

With $oWordApp.ActiveDocument.Variables("ФАМИЛИЯ") ;~ ("ФАМИЛИЯ")  - это имя переменной в word
				.Value = $FIO  ;~ .Value - текст которым хотим заменить
endwith


with $oWordApp.ActiveDocument.Fields.Update  ;~ обновляет значения
EndWith

with $oWordApp.ActiveDocument  ;~ сохранение и закрытие
				.Save
				.Close
EndWith

Вот сам нашел решение. в самом Word, у меня 2013, Вставка/Текст/поле/выбираем категорию автоматизация/DocVariable/Вводите новое имя - это и будет переменная ("ФАМИЛИЯ"), которая заменится текстом с .Value = $FIO
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
With $oWordApp.ActiveDocument
	.Variables("Фамилия").Value = 'Моя фамилия Иванов ' & Random(1,100,1)
	.Variables("Test").Value = 'Тестовое значение: ' & Random(1,100,1)
EndWith


With $oWordApp.ActiveDocument
	.Fields.Update
	.Save
    .Close
EndWith
 
Верх