【分享成果,随喜正能量】终有一天,你会跨过静谧无声的洗墨江,离开群山环抱的旧桃源,来到无边阴霾的夜空之下。你会目睹无数不可攀爬之山相继倾覆,不可逾越干涸成田,你要记得,你的命运悬在刀尖上,而刀尖须得永远向前。每个人都会有一段异常艰难的时光,生活的压力,工作的失意,学业的压力,爱的惶惶不可终日,挺过来的,人生就会豁然开朗,挺不过来的,时间也会教你,怎么与它们握手言和,所以不必害怕的。
《VBA之Word应用》,是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。本套教程共三册十六章,今日内容是第五章 “Word中的Range对象(上)”第1节:什么是Word Range对象。
我们知道Range的含义是一个范围,在Excel中这个范围是单元格区域,可以是一个单元格,也可以是多个单元格。在Word中Range同样表示一个范围,这个范围可以是文档的任何部分,大如包括整个文档,也可以小如一个字符。概况地讲:在Word中,Range对象表示文档中的一个连续区域。每个 Range 对象由一个起始字符位置和一个终止字符位置定义。
1 Range对象与Bookmark对象在第二章中,我给大家首先讲解了word中的书签,以便让大家能尽快地理解VBA在Word中的应用。Range对象与Bookmark书签对象在文档中的使用方法类似,Range 对象同样可以用来标识文档的特定部分。但与书签不同的是,Range对象只在定义该对象的过程运行时才存在。 Range对象不受选定内容影响。这就是说,你可以定义Range对象并对其进行操作,无需更改选定内容。此外,你还可以在文档中定义多个Range对象,但每个Range对象只能具有一个选定内容。
使用Range方法返回一个Range对象, 该对象由给定的起始和结束字符位置定义。例如:以下示例将返回引用活动文档中的前 10 个字符的 Range 对象:
Set myRange = ActiveDocument.Range(Start:=0, End:=10)
2 Range对象应用的灵活性1) 使用Range属性可返回一个Range对象, 该对象由另一个对象的开头和结尾定义。 Range 属性适用于多种对象(例如 Paragraph、Bookmark )。
2) 以下示例返回引用活动文档中第一段的 Range 对象。
Set myRange = ActiveDocument.Paragraphs(1).Range
3) 下面的示例返回一个Range对象, 该对象引用活动文档中的第二到第四个段落。
Set myRange = ActiveDocument.Range( Start:=ActiveDocument.Paragraphs(2).Range.Start, _
End:=ActiveDocument.Paragraphs(4).Range.End)
4) 使用Document对象的range方法可以创建一个Range对象,该对象位于主体文档中并具有给定的起始和终结点。 下面的示例创建一个Range对象,该对象从第一个字符的开始位置开始并延伸到第十个字符:
Set rngDoc = ActiveDocument.Range(Start:=0, End:=10)
5) 得到 Range 对象后,可使用它的任何属性或方法来修改该Range对象。下列示例选定活动文档中的第二个段落并将所选内容居中。
ActiveDocument.Paragraphs(2).Range.Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
3 利用Range对象设置某段文档的格式由于Range对象具有非常大的灵活性,我们可以利用它来完成某段文档的格式设置,下面我们来看代码:
Sub mynz()
【代码见教程】
End Sub
代码截图:
代码的解读:
1) 以上代码利用了嵌套with语句,来设置活动文档的第一段,居中,加粗,字体为“隶书”,字号为15。
2) myRng = ActiveDocument.Paragraphs(1).Range 是将第一段的文档赋给变量myRng。大家要注意这种用法,是非常方便和实用的。
代码的运行效果,代码运行前:
代码运行后:
今日内容回向:
1 什么是Word中的Range对象?
2 Word中的Range对象有什么特点?
本讲内容参考程序文件:Doc 005文档.docm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: