【分享成果,顺熙正能量】人一辈子不要抱怨什么样子,怪别人,心大了事情就小了。心胸开阔,烦了就没了。
《VBA之Word应用》,我推出的第八个教程,教程专门介绍VBA在Word中的应用,以“面向对象编程”为中心,首先在Word中了解VBA的对象和对象的属性、方法,然后通过实例感受Word VBA的妙处,本教程共3卷16章,今天的内容是
第7节Range对象方法(1)
大家好,我们继续讲解Range对象,从这一节开始,我们将讲解Range对象的方法。对于目标,属性和方法是不可分割的。掌握属性后,要掌握方法。当然,在实际应用中,两者都很普遍,达到一个目的往往有多种方法。(大卫亚设)。
1 Range。ComputeStatistics方法
此方法返回一个长整型,表示基于指定范围内容的统计信息。
语法:ex(静态)
其中expression是必需的,是表示Range对象的变量。
参数:Statistic必需的WdStatistic要计算的统计类型。
WdStatistic是从选择或项目返回的统计信息。
1)wdStatisticCharacters 3字符数。
2)字符数,包括wdstatisticcharacterswithspaces 5空格。
3)wdstatisticfareastcharacters 6亚洲语言字符数。
4)wdStatisticLines 1列数。
5)wdStatisticPages 2页数。
6)wdStatisticParagraphs 4段数。
7)wdStatisticWords 0字数。
由于选择或安装的语言支持不同(例如美国英语),上述某些常量可能不可用。2 Range。Delete方法
此方法删除指定数量的字符或单词。
语法:ex(单位,计数)
其中expression是必需的,是表示Range对象的变量。
参数:
1) Unit可选变量要删除的范围单位。可以是WdUnits常量之一。
2) Count可选变量要删除的单位数。要删除区域后面的单位,请缩小区域并使用正值。要删除区域前面的单位,请缩小区域并使用负值。
此方法返回一个长值,指示要删除的项目数;如果删除失败,则返回0。WdUnits的枚举值:
WdCell 12芯
WdCharacter 1文字。
WdCharacterFormatting 13文字格式
Wd列9列
已选择WdItem 16
1条WdLine 5线段
WdParagraph第4部分
WdParagraphFormatting第14段格式
WdRow 10行
WdScreen 7屏幕大小
WdSection 8部分
WdSentence三句话
WdStory第6部分
1个WdTable 15表
Wd窗口11窗口
WdWord 2字
3 Range。EndOf方法
此方法将区域结束字符的位置移动或扩展到最近的指定文本单位的末尾。
语法: expression.end of (unit,extend)
其中expression是必需的,是表示Range对象的变量。
参数:
1)Unit可选变量结束字符位置移动到的单元格。可以是除WdLine之外的任何WdUnits。默认值为wdWord。
2)Extend必需的WdMovementType指定是移动还是延伸区域端点。如果值为wdMove,则区域和选定对象的端点都将移动到指定单位的端点。使用WdExtend时,区域或选定内容的端点将延伸到指定单位的端点。默认值为wdMove。
4例:范围信息统计和范围调整
例如,让我们看一下范围信息的统计和范围修改。首先,我们来看下面的代码。
Sub mynzF()
[请参阅代码教程]
End Su
b代码截图:
代码的解读:
1) Set myRange = Ac(1).Range
'显示第一段的字数,字符数,行数
wordCount = myRange.ComputeStatistics(Statistic:=wdStatisticWords)
charCount = myRange.ComputeStatistics(Statistic:=wdStatisticCharacters)
linCount = myRange.ComputeStatistics(Statistic:=wdStatisticLines)
MsgBox "当前文档第一段的字数:" & wordCount _
& "; 当前文档第一段的字符数:" & charCount & "; 当前文档第一段的行数:" & linCount
以上代码首先将第一个段落赋给myRange变量,然后利用三个变量分别取得这个变量的字数,字符数,和行数,最后用对话框提示给用户。
2) Set myRange = Ac(0, 0)
myRange.Select
k = Selec(Unit:=wdParagraph, Extend:=wdExtend)
以上代码再次设置myRange变量,然后用.EndOf方法扩展到整个段落的结尾。
3)Ac.Add
Set myTable = Ac(Range:=Ac(Ac.Count).Range, _
NumRows:=3, NumColumns:=3, DefaultTableBehavior:=wdWord9TableBehavior)
myTable.Cell(1, 3).Select
Selec Unit:=wdColumn, Extend:=wdExtend
以上代码首先添加一个新的段落,然后在这个段落中插入表格,并选择第三行第一列的单元格,最后将这个单元格扩展都整列。
4)Ac
Selec
以上代码将选择整个文档,然后删除。
下面我们看程序的运行效果:
今日内容回向:
1 Word中Range对象的ComputeStatistics方法、Delete 方法、EndOf 方法的意义是什么?
2 如何实现信息的统计及范围的调整?
本讲内容参考程序文件:Doc 005文档.docm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】没有谁的幸运,凭空而来,只有当你足够努力,你才会足够幸运,这世界不会辜负每一份努力和坚持。。