Вниз
Скачать: CL | DM;

Отчет в MS Word   Найти похожие ветки 

← →
elfebet ©   (2006-01-16 12:30) [0]

Прочитал на этом сайте тему про "Отчет в MS Word", ни один вариант не подошел (не работает). Задача состоит в том, чтобы текст подставлялся в определённые места документа Word через закладки.
Пишу такой код:

var W: Variant;
...
W:=CreateOleObject("Word.Application");
W.WordBasic.FileOpen("C:\document.doc");
W.WordBasic.StartOfDocument;
W.ActiveDocument.Bookmarks("num").Select;
W.WordBasic.Insert("new text");

Выдает ошибку в строке:
W.ActiveDocument.Bookmarks("num").Select;
пробовал:
W.EditGoto("num");
и
W.EditBookmark("num");
не работает.
Погмогите плиз, очень надо.


← →
asafr ©   (2006-01-16 13:36) [1]

текст ошибки, пжлст....


← →
Kot_   (2006-01-16 13:42) [2]

Попробуй не через закладки, а заменением определенных кодов.
Например @дата@ мненяем на нужную дату.


← →
evvcom ©   (2006-01-16 13:50) [3]


> Выдает ошибку в строке:
> W.ActiveDocument.Bookmarks("num").Select;

А у тебя есть в Ворде такая закладка? Или ты думаешь, что Билл Гейтс во все новые документы такую закладку внедряет?


← →
elfebet ©   (2006-01-16 13:56) [4]

Такая закладка есть. Выдает ошибку "Bookmarks не является методом"


← →
elfebet ©   (2006-01-16 14:20) [5]

Я нашел способ решения задачи. Честно горовя этот способ мне кажется неправильным, но работает.

var W: Variant;
    R: OleVariant;
...
W:=CreateOleObject("Word.Application");
W.WordBasic.FileOpen("C:\document.doc");
W.Visible:=true;
R:= W.ActiveDocument.Bookmarks.Item("num").Range;
R.InsertAfter("new text");


← →
evvcom ©   (2006-01-16 14:36) [6]


> W.WordBasic.FileOpen("C:\document.doc");

По-моему, обычно используют
W.Documents.Open
InsertAfter applies to Range Object and Selection Object. Так что вполне нормальный способ решения.
P.S.

> var W: Variant;
>     R: OleVariant;

А чего это ты их разными типами сделал? Используй везде OleVariant;


← →
elfebet ©   (2006-01-16 14:45) [7]

сэнкс



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.05 c
1-1137350002
Gnobobel
2006-01-15 21:33
2006.02.12
Вызов функций EXE из DLL


15-1137510339
oldman
2006-01-17 18:05
2006.02.12
Да здравствует английский язык, самый английский в мире!!! :)


8-1124699608
Новичек11
2005-08-22 12:33
2006.02.12
Эквалайзер к MS Media Player


15-1137946202
Cerberus
2006-01-22 19:10
2006.02.12
Чья фраза?


15-1137394603
Nic
2006-01-16 09:56
2006.02.12
Чё-то с погодой не то...




   Наверх