【分享成果,随喜正能量】人这一辈子,不管什么样子,都不要抱怨,责怪他人,心大了,事就小了;心宽了,烦就没了《VBA之Word应用》,是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。
本套教程共三册十六章,今日内容是第五章“Word中的Range对象(上)”第7节:Word文档中范围的信息统计
第七节 Range对象的方法(一)大家好,我们继续Range对象的讲解,从这节开始,我们讲解Range对象的方法对于对象而言,属性和方法是密不可分的,掌握属性后就要掌握方法了,当然,在实际应用中,两者也是通用的,实现一个目的也往往有多种实现的途经。
1 Range.ComputeStatistics 方法这个方法返回一个Long , 该值代表基于指定范围内容的统计信息语法:expression.ComputeStatistics(Statistic)。
其中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 方法此方法删除指定数量的字符或单词语法:expression.Delete(Unit, Count)其中expression 是必需的,是一个代表 Range 对象的变量参数:
1) Unit 可选 Variant 要删除范围的单位可以是WdUnits常量之一2) Count 可选 Variant 要删除的单位数要删除该区域后的单位,请折叠该区域并使用一个正值要删除该区域前的单位,请折叠该区域并使用一个负值。
此方法返回一个Long值,指示删除的项目数,如果删除不成功,则返回0(零)WdUnits 的枚举值:wdCell 12 单元格wdCharacter 1 字符.wdCharacterFormatting 13 字符格式。
wdColumn 9 列wdItem 16 所选项wdLine 5 一个线段wdParagraph 4 段落wdParagraphFormatting 14 段落格式wdRow 10 行wdScreen 7 屏幕尺寸
wdSection 8 一节wdSentence 3 句子wdStory 6 部分wdTable 15 一个表格wdWindow 11 窗口wdWord 2 字3 Range.EndOf 方法该方法将区域的结束字符位置移动或扩展到最近的一个指定文本单位末尾。
语法:expression. EndOf(Unit,Extend)其中expression 是必需的,是一个代表 Range 对象的变量参数:1)Unit 可选 Variant 结束字符位置移至的单元可以是任何WdUnits,但wdLine除外。
默认值是 wdWord 2)Extend 必需 WdMovementType 指定是移动还是扩展区域的末尾如果值为 wdMove,则区域和选定内容对象的结尾都移到指定单位的末尾如果使用了wdExtend,则该区域或所选内容的末尾被扩展到指定单位的末尾。
默认值为 wdMove 4 实例:Range范围的信息统计及范围的调整下面我们通过一个实例,给大家讲解一下上述方法的具体应用,在这个应用中我们会学习到Range范围信息的统计及范围的修正,我们先看下面的代码:
Sub mynzF()[代码见教程]End Sub代码截图:
代码的解读:1) Set myRange = ActiveDocument.Paragraphs(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 = ActiveDocument.Range(0, 0)myRange.Selectk = Selection.EndOf(Unit:=wdParagraph, Extend:=wdExtend)
以上代码再次设置myRange变量,然后用.EndOf方法扩展到整个段落的结尾3)ActiveDocument.Paragraphs.AddSet myTable = ActiveDocument.Tables.Add(Range:=ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Range, _。
NumRows:=3, NumColumns:=3, DefaultTableBehavior:=wdWord9TableBehavior)myTable.Cell(1, 3).SelectSelection.EndOf Unit:=wdColumn, Extend:=wdExtend
以上代码首先添加一个新的段落,然后在这个段落中插入表格,并选择第三行第一列的单元格,最后将这个单元格扩展都整列4)ActiveDocument.Content.SelectSelection.Delete。
以上代码将选择整个文档,然后删除。下面我们看程序的运行效果:
今日内容回向:1 Word中Range对象的ComputeStatistics方法、Delete 方法、EndOf 方法的意义是什么?2 如何实现信息的统计及范围的调整?本讲内容参考程序文件:Doc 005文档.docm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】没有谁的幸运,凭空而来,只有当你足够努力,你才会足够幸运,这世界不会辜负每一份努力和坚持。。
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。