咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

分享成果,随喜正能量】做人,不随意苛求别人,也不要盲目要求自己,更不要嫉妒他人,即使失去了什么,也会以另一种方式被弥补回来。 ​​

《VBA之Word应用》,是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。本套教程共三册十六章,今日内容是第五章“Word中的Range对象(上)”第9节:Word文档中Range区域的扩展。

第九节 Range对象的方法(三)

大家好,我们这讲继续Range对象的方法讲解,在VBA WORD中Range对象应用是最为经常的,关于这个对象的一些知识点,大家要尽可能的去掌握。

1 Range.Move方法

将指定范围折叠到其起始位置或结束位置,然后将折叠后的对象移动指定的单位数。

语法: expression. Move(Unit,Count)

其中expression 是必需的,是一个代表 Range 对象的变量。

参数:

Unit 可选 WdUnits 范围要移动的单位。

Count 可选 Variant 指定范围内的移动的单位数。 如果 Count 是一个正数,对象折叠到其结束位置,并在文档中向后移动指定的单位数。 如果 Count 是一个负数,对象折叠到其起始位置,并向前移动指定的单位数。 默认值为 1。 还可以使用 Move方法之前使用Collapse方法控制的折叠方向。如果该范围位于一个单位的中间,或者不能折叠,将其移动到的开头或结尾的部门计为移动它一个完整的单元。

  • 此方法返回一个Long值,该值指示实际移动的对象的单位数,如果移动不成功,则返回0(零)。折叠范围的开始和结束位置相同。
  • 对一个范围应用 Move 方法不会重排文档中的文本。 相反,它重新定义该区域,以引用文档中的新位置。

2 Range.MoveEnd方法

该方法移动结束字符位置的范围。。

语法:expression.MoveEnd(Unit, Count)

其中expression 是必需的,是一个代表 Range 对象的变量。

参数:

Unit 可选 WdUnits 结束字符位置要移动的单位。

Count 可选 Variant 要移动的单位数。 如果此数字为正数, 结束字符位置将在文档中向前移动。 如果此数字为负, 则结束位置向后移动。 如果结束位置溢出起始位置, 则范围将折叠, 两个字符位置将一起移动。 默认值为 1。

3 Range.MoveStart 方法

该方法移动指定范围的起始位置。

语法:expression.MoveStart(Unit, Count)

其中expression 是必需的,是一个代表 Range 对象的变量。

参数:

Unit 可选 WdUnits 指定范围的起始位置要移动的单位。

Count 可选 Variant 指定区域要移动的最大单位数。 如果 Count 是正数,则该区域的起始位置在文档中向前移动。 如果为负数,则起始位置向后移动。 如果起始位置向前移至结束位置之前,则折叠该区域,并将起始位置和结束位置移至同一位置。 默认值为 1。

4 实例:范围区域的扩展

下面我们还是通过一个实例来讲解本节的方法,这个实例中会讲到Range区域的调整,我们看下面的代码:

Sub mynzH()

[代码讲教程]

End Sub

代码截图:

代码解读:

1) '将光标移到第4段

Set myRange = ActiveDocument.Paragraphs(1).Range

With myRange

.Collapse Direction:=wdCollapseStart

.Move Unit:=wdParagraph, Count:=3

.Select

End With

Selection.InsertAfter "VBAVBA"

Set myRange = Nothing

以上代码将光标移动到第四段前,并写入 "VBAVBA" 。

2) '将myRange区域从第2段向下扩展2段

If ActiveDocument.Paragraphs.Count >= 5 Then

Set myRange = ActiveDocument.Paragraphs(2).Range

With myRange

.MoveEnd Unit:=wdParagraph, Count:=2

.Select

End With

End If

Set myRange = Nothing

以上代码将第二段,向下扩展2段到第4段。

3)'将myRange区域从第5段向前扩展2段

If ActiveDocument.Paragraphs.Count >= 5 Then

Set myRange = ActiveDocument.Paragraphs(5).Range

With myRange

.MoveStart Unit:=wdParagraph, Count:=-2

.Select

End With

End If

Set myRange = Nothing

以上代码将第5段向前扩展2段到第三段。

看代码的运行:

今日内容回向:

1 Word中Range对象的Move方法、MoveEnd方法、MoveStart方法的意义是什么?

2 如何实现范围的扩展?

本讲内容参考程序文件:Doc 005文档.docm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

分享成果,随喜正能量】这世界上大部分人都为自己盘算,但也有很多人在为自己盘算的同时,也为他人着想。只为自己叫自私,也为别人叫善良,只为他人叫菩萨。