创建字符序列

字符序列的起点和终点位置可以直接用字符的位置指定,也可以用段落字符序列的起点或终点位置指定。下面打开D盘下的文档terst2.docx,获取第1个字符到第10个字符定义的字符序列,选择该字符序列。[大谦Excel,dqexcel点com]

code.vba
Sub Test()
  '新建Range对象
  Dim doc As Document
  Set doc = Documents.Open("D:\test2.docx")

  Dim rng As Range
  Set rng = doc.Range(Start:=0, End:=10)
  rng.Select
End Sub

效果如图3-1所示,第1个字符到第10个字符定义的字符序列被选中。

Document Image

图3-1 定义字符序列

下面打开文档test2.docx,创建字符序列时用文档中第1个段落的起点定义字符序列的起点,用第2个段落的终点定义字符序列的终点。选择该字符序列。关于表示段落的Paragraphs对象,在后面的内容中进行介绍。

code.vba
Sub Test2()
  '利用已有Range对象构造新的Range对象
  Dim doc As Document
  Set doc = Documents.Open("D:\test2.docx")

  Dim rng As Range
  Set rng = doc.Range(Start:=doc.Paragraphs(1).Range.Start, End:=doc.Paragraphs(2).Range.End)
  rng.Select
End Sub

效果如图3-2所示。

Document Image

图3-2 用段落的起点和终点定义新字符序列

对于已经存在的Range对象,可以使用Range对象的SetRange方法修改字符序列的起点位置和终点位置。

下面用Range对象的SetRange方法重新定义该字符序列的范围,并选择它。

code.vba
Sub Test4()
  '修改起点或终点
  Dim doc As Document
  Set doc = Documents.Open("D:\test2.docx")

  Dim rng As Range
  Set rng = doc.Range(Start:=0, End:=10)
  rng.SetRange Start:=0, End:=20
  rng.Select
End Sub

效果如图3-3中亮显部分所示,可见,字符序列的范围改变了。

Document Image

图3-3 重新定义字符序列的范围并选择它