问几个word问题 --再下100分,因ole版没re(100分)

  • 主题发起人 主题发起人 ldaan3
  • 开始时间 开始时间
L

ldaan3

Unregistered / Unconfirmed
GUEST, unregistred user!
1. 在用 createoleobject打开的word文件里,
var
range:variant;
i:integer;
begin

myword:=createoleobject('word.application');
myword.documents.add;
myword.visible:=true;
range:=myword.documents.item(1).range;
range.text:='fdafd2321';
for i:=1 to 3 do

begin

myword.documents.item(i).paragraphs.add;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这一句,运行不了, 说什么'集合要求的成员不存在',请问是怎么回事啊?我想在word的第
end;
二行,或者是第18行,写入文字,怎么办呢?而我又不想用什么'#13#10'的句子!
end;


2. 我想用在createoleobject打开的word文件里,直接控制它的关闭,包括对word关闭前提出的 问你是否保存 这个框框的控制,有什么办法吗?

3. 在用createoleobject打开的word的文件中,把光标停留在第三行、第5个字符的位置那里,应该怎样写语句呢?
 
2。如果要保存就先save再close
如果不保存就close加一个参数(忘了是什么了,但一定有)
word 中的对象很复杂,找一找word vba帮助,可以解决所有问题,我以前用过vba编程,
但没用过delphi控制word
 
分别对你的问题谈一下看法吧,没有实现,随便说了一下思路
1、
>>myword.documents.item(i).paragraphs.add;
尝试定义一个variant变量。
var item_Handle;
item_Handle:=myword.documents.item(i);{这里的是括号还是[]还需要尝试}
item_Handle.paragraphs.add;
2、我想用在createoleobject打开的word文件里,直接控制它的关闭,包括对word关闭前提出的 问你是否保存 这个框框的控制,有什么办法吗?
Word提供了一个Saved标志是否保存了文档。可以采用欺骗的手法进行
>> myword:=createoleobject('word.application');
>> myword.documents.add;
尝试改成
>> myword:=createoleobject('word.application');
>> mydoc:=myword.documents.add;

设置mydoc.Saved:=True,就应该可以了。
3、在用createoleobject打开的word的文件中,把光标停留在第三行、第5个字符的位置那里,应该怎样写语句呢?
这个问题可以使用查看Word宏,然后转换成Delphi代码的方式解决。
>>Selection.MoveDown Unit:=wdLine, Count:=1
myword.Selection.MoveDown (Unit:=wdLine, Count:=1)
但是如果随意定义,建议你使用书签进行,然后定义书签。
 
多人接受答案了。
 
后退
顶部