用Word文档的GoTo方法为什么不能定位?(70分)

  • 主题发起人 主题发起人 almeidar
  • 开始时间 开始时间
A

almeidar

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用GoTo(What:=wdGoToBookmark,Name:='Bookmark's name')不能将当前位置定位到指定
的书签,但是通过滚动条上的定位按钮就可以,这是为什么?
(OleContainer和TWordApplication都式过了)
 
WordApp 是TWordApplication控件.

procedure TForm1.Button11Click(Sender: TObject);
var
What,Which,Count,Name : OleVariant;
begin
What := wdGoToBookmark;
Which := EmptyParam;
Count := EmptyParam;
Name := 'abc'; //我的文件中有一个名字为abc的书签
WordApp.Selection.GoTo_(what,which,count,name);
end;
 
真是非常感谢Bluerain的相助,我以前使用WordApp.ActiveDocument.GoTo,所以耽误了这么
些天,帮助里Document对象也是可以的,为什么用Selection才行,还望拨冗指点。分数已加
只有这些分了,还望见谅。
 
其实用ActiveDocument.GoTo也是可以的,例如
procedure TForm1.Button11Click(Sender: TObject);
var
What,Which,Count,Name : OleVariant;
rng : Word2000.Range;
begin
What := wdGoToBookmark;
Which := EmptyParam;
Count := EmptyParam;
Name := 'abc';
rng := WordDoc.GoTo_(What,Which,Count,name);
rng.Select;
end;
为什么可以看看下面文字蓝色部分.

以上解释是根据 VBAWRD9.CHM,如果你的office是完全安装的,可以找到这些
VBA**.CHM的文件,是VBA控制Office的十分详尽的手册.至于下面罗列的一些
wd开头的常量,可以到Word2000.pas或者Word97.pas中找到.

========================================================================
GoTo 方法

[blue]对于 Document 或 Range 对象:返回一个 Range 对象,
该对象代表指定项(例如页、书签或域)的开始位置。

对于 Selection 对象:将插入点移至指定项前面的字符位置,并返回一个
Range 对象(但 wdGoToGrammaticalError、wdGoToProofreadingError 或
wdGoToSpellingError 常量除外)。[/blue]

注意
将本方法用于 wdGoToGrammaticalError、wdGoToProofreadingError 或
wdGoToSpellingError 常量时,返回的 Range 对象中包括所有含语法或
拼写错误的文本。

[red]语法[/red]
expression.GoTo(What, Which, Count, Name)

expression 必需。该表达式返回一个 Document、Range 或 Selection 对象。
What Variant 类型,可选。该区域或所选内容将移至的项的类型。可以取下列 WdGoToItem 常量之一:

wdGoToBookmark wdGoToComment
wdGoToEndnote wdGoToEquation
wdGoToField wdGoToFootnote
wdGoToGrammaticalError wdGoToGraphic
wdGoToHeading wdGoToLine
wdGoToObject wdGoToPage
wdGoToPercent wdGoToProofreadingError
wdGoToSection wdGoToSpellingError
wdGoToTable

Which Variant 类型,可选。区域或所选内容要移至的项。可以取下列WdGoToDirection 常量之一:
wdGoToAbsolute、wdGoToFirst、wdGoToLast、
wdGoToNext、wdGoToPrevious 或 wdGoToRelative。

下面的示例的作用相同,都将所选内容移至文档的第一个标题。

Selection.GoTo What:=wdGoToHeading, Which:=wdGoToFirst
Selection.GoTo What:=wdGoToHeading, Which:=wdGoToAbsolute, Count:=1

Count Variant 类型,可选。文档中的项数。默认值为 1。

下面的示例将所选内容移至文档中的第四行。
Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4
只有正数是有效的。要指定一个在该区域或所选内容之前的项,可将 Which 参数
值指定为 wdGoToPrevious,并指定一个 Count 值。下面的示例将所选内容向上
移动两行。

Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=2

Name Variant 类型,可选。如果 What 参数是wdGoToBookmark、wdGoToComment、
wdGoToField 或 wdGoToObject,则本参数指定名称。下面的示例移至下一个 DATE 域。

Selection.GoTo What:=wdGoToField, Name:="Date"
 
后退
顶部