【分享成果,随喜正能量】做人,不随意苛求别人,也不要盲目要求自己,更不要嫉妒他人,即使失去了什么,也会以另一种方式被弥补回来。
《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实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】这世界上大部分人都为自己盘算,但也有很多人在为自己盘算的同时,也为他人着想。只为自己叫自私,也为别人叫善良,只为他人叫菩萨。