暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在文档中插入分页符及位置的扩展

VBA语言専攻 2022-03-29
55
分享成果,随喜正能量】根本没有那条“更好的路”,只有一条路,就是你选择的那条路。关键是,你要勇敢地走上去,而且要坚持走下去。


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

第四节  Range对象的方法(八)

大家好,我们这讲继续Range对象方法的讲解,在上一讲中我们讲解了Range对象的SetRange 方法、PasteAndFormat方法、PasteSpecial 方法,这节我们将讲解Select方法、GoTo方法、Expand 方法。

1  Range.Select方法

此方法选择指定的范围。
语法:expression.Select
其中expression 是必需的,是一个代表Range对象的变量

2  Range.GoTo方法

此方法返回一个 Range 对象,该对象表示指定的item,如页、书签或字段的起始位置。
语法:expression. GoTo(What,Which,Count,Name)
其中expression 是必需的,是一个代表Range对象的变量
参数:
1)What   可选   Variant   范围要移动到的项的类型。 可以是wdGoToItem常量之一。
2)Which   可选   Variant   范围要移动到的项。 可以是**wdGoToDirection** 常量之一。
3)Count   可选   Variant   在文档中的项的数目。 默认值为 1。 只有正值是有效的。 要指定之前范围的项,请使用 wdGoToPrevious 作为其参数并指定计数值。
4)Name   可选   Variant   如果哪些参数是wdGoToBookmark、wdGoToComment、 wdGoToField或wdGoToObject ,则此参数指定一个名称。 只有正值是有效的。 要指定之前范围的项,请使用 wdGoToPrevious 作为其参数并指定计数值。

3  Range.Expand方法

扩展指定的区域或所选内容。返回添至该区域或所选内容的字符数.
语法:expression. Expand(Unit)
其中expression 是必需的,是一个代表Range对象的变量
参数:
1)Unit   可选   Variant   度量单位以展开该区域。 可以是下列的移常量之一: wdCharacter、wdWord、wdSentence、wdParagraph、wdSection、wdStory、wdCell wdColumn、 wdRow或wdTable.

WdGoToItem 常量枚举值:
wdGoToBookmark   -1   书签bookmark.
wdGoToComment   6   批注 comment.
wdGoToEndnote   5   尾注endnote.
wdGoToEquation   10   公式equation.
wdGoToField    7   域 field.
wdGoToFootnote   4   脚注 footnote.
wdGoToGrammaticalError   14   语法错误grammatical error.
wdGoToGraphic     8   图形graphic.
wdGoToHeading   11   标题 heading.
wdGoToLine   3   线段 line.
wdGoToObject   9   对象 object.
wdGoToPage   1   page.
wdGoToPercent     12   百分比 percent.
wdGoToProofreadingError   15   校对错误proofreading error.
wdGoToSection   0     section.
wdGoToSpellingError   13   拼写错误 spelling error.
wdGoToTable    2   表格table.

WdGoToDirection 常量枚举值:
wdGoToAbsolute   1   绝对位置.
wdGoToFirst   1   所指定对象的第一个实例.
wdGoToLast   -1   所指定对象的最后一个实例
wdGoToNext   2   所指定对象的下一个实例
wdGoToPrevious   3   所指定对象的上一个实例。
wdGoToRelative    2   相对于当前位置的位置

4  实例:选择某范围,然后移动光标到其他位置并扩展

我们下面就一个实例来讲解一下本节方法的应用。这讲的实例中:首先选择活动文档的的第二段作为基础,然后在活动文档倒数第二段之后插入一个分页符,分页。并将光标转到第二页开始,扩展到整个段落。我们看代码:
Sub mynzC()
    Set myRange = ActiveDocument.Paragraphs(2).Range
    myRange.Select
    MsgBox myRange.Text
    '活动文档倒数第二段之后插入一个分页符,也就是将最后一段分页
    With myRange
        .Collapse Direction:=wdCollapseEnd
        .InsertBreak Type:=wdPageBreak
    End With
    '将光标转到第二页开始
    myRange.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2
    myRange.Select
    '将myRange范围扩展到第二页光标所在的整个段落
    'myRange.SetRange Start:=Selection.Range.Start, End:=Selection.Paragraphs(1).Range.End
    myRange.Expand Unit:=wdParagraph
    myRange.Select
    MsgBox myRange.Text
End Sub

代码截图:

代码解读:
这里只给大家讲解一下将myRange范围扩展到第二页光标所在的整个段落的方法,这里给出了两种代码:
其一:myRange.SetRange Start:=Selection.Range.Start, End:=Selection.Paragraphs(1).Range.End
这句代码利用的是SetRange扩展调整开始和结束的位置。
还有一种方案是直接扩展:myRange.Expand Unit:=wdParagraph
以上两种方案都是可以的。

代码的运行效果:


今日内容回向:
  1  Word中Range对象的Select方法、GoTo方法、Expand 方法的意义是什么?
  2  如何利用VBA移动及扩展某区域?


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




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


分享成果,随喜正能量】做事,就两个字:坚持,多坚持一会,多忍耐一次,也许就会有意外的惊喜。
文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论