|
Замена текста в Word AD | ☑ | ||
|---|---|---|---|---|
|
0
Альбатрос
03.10.13
✎
10:57
|
Договор = ПолучитьМакет("Макет"); // получим макет-ActiveDocument
MSWord = Договор.Получить(); Для каждого Строчка из ПриемНаРаботу.РаботникиОрганизации цикл Попытка Doc = MSWord.Application.Documents(1); Doc.Activate(); Replace = Doc.Content.Find; FindText = "{НомерДоговора}"; Replace.Execute(FindText,Ложь,Истина,Ложь,,,Истина,,Ложь,ОбщегоНазначенияЗК.ПолучитьНомерНаПечать(ПриемНаРаботу)); Если у меня в документе много шаблонов вида "{НомерДоговора}", то как задать цикл, чтоб они все заменились, а не только первый? |
|||
|
1
Альбатрос
03.10.13
✎
11:14
|
неужели нет метода? придется копировать блок с заменой текста столько раз, сколько текст встречается в макете :( Неоптимальненько как-то...
|
|||
|
2
BuHu
03.10.13
✎
11:19
|
(1) открой ворд , включи запись макроса , выполни ту операцию ,которую хочешь выполнить программно , руками . останови запись макроса , посмотри код . мне иногда помогало.
|
|||
|
3
Мыш
03.10.13
✎
11:21
|
Find.Execute Method
Parameters Replace Specifies how many replacements are to be made: one, all, or none. Can be any WdReplace constant. |
|||
|
4
Мыш
03.10.13
✎
11:22
|
Подробнее в синтакс [зачеркнуто], MSDN-помощнике
http://msdn.microsoft.com/en-us/library/office/bb179352(v=office.12).aspx |
|||
|
5
Chikko
03.10.13
✎
11:25
|
В бсп для ворда вроде есть процедуры. УправлениеПечатьюMSWordКлиент
|
|||
|
6
BuHu
03.10.13
✎
11:26
|
как то надо сказать ворду - WdReplaceAll
|
|||
|
7
Альбатрос
03.10.13
✎
11:33
|
(3) (4) (6) Спасибо, щас опробую
|
|||
|
8
Альбатрос
03.10.13
✎
11:38
|
Блин, а как передать WDReplaceAll? Просто текстом не получается...
|
|||
|
9
Альбатрос
03.10.13
✎
11:42
|
все, понял, вот так:
wdReplace = 2; Replace.Execute(ИскомыйТекст,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены,wdReplace); |
|||
|
10
Альбатрос
03.10.13
✎
11:43
|
Еще раз спасибо!
|
| Форум | Правила | Описание | Секции | Поиск |