第一句子大全,网罗天下好句子,好文章尽在本站!

VBA代码解决方案第146讲:如何自动实现Word文档的信息统计

时间:2023-12-10

熟悉Word的朋友都清楚,对于WORD文档的信息统计,是一个标准的功能,打开一个WORD文档,当选择一段文字后,在下面的信息栏中就会提示选中的字数、段落数等信息

友情提示:本文共有 1899 个字,阅读大概需要 4 分钟。

大家好,我们今日继续讲解VBA代码解决方案的第146讲内容:如何实现Word文档的信息统计。熟悉Word的朋友都清楚,对于WORD文档的信息统计,是一个标准的功能,打开一个WORD文档,当选择一段文字后,在下面的信息栏中就会提示选中的字数、段落数等信息。那么这个功能是如何实现的的呢?我们利用VBA可否也可以实现类似的功能呢?今日的内容就当大家实现这个功能。当然,目的仍是让大家熟悉在WORD中如何利用循环语句。

说句实在话,对于一个OFFICE软件,无论是excel还是word,在微软提供的功能中如果想实现循环计算只有两个办法,一是利用数组,二是利用迭代运算。但这两种方法都有自己的局限性,比如迭代,要受到迭代次数的影响,不同的迭代次数运行的结果会有不同,而数组本身就是EXCEL的一个难点,说句夸张的话,在讲数组的文章中,或许你只有在我的这个平台可以能看到系统的讲解,如何的定义,如何的利用,在讲VBA之前我利用了大量的时间给大家讲EXCEL函数及各种高端的应用,如果感兴趣的朋友可以回过头来看看我之前的文章。如果我们理解了VBA这个知识点完全可以用VBA来解决,而且,解决的更好。

今日讲的实例是利用循环统计出所选文本中的句子数量和结尾的标点符号。

Sub mynzsen()

Dim s As Range, SenCount As Integer, MyString As String

Dim EndChar As String, K As Integer

K = 0

With Selection

If .Type = wdNoSelection Then Exit Sub

SenCount = .Sentences.Count "取得所选内容的句子数

For Each s In .Sentences "在句子中循环

K = K + 1

"如果句子中的最后一个字符为段落标记则EndChar为段落标记的前一个字符

If s.Characters(s.Characters.Count) = Chr(13) Then

EndChar = "[第" & K & "句结束标点为 " & s.Characters(s.Characters.Count - 1) & "]"

Else

EndChar = "[第" & K & "句结束标点为 " & s.Characters(s.Characters.Count) & "]"

End If

"以空格为分隔符,将结束标点在变量中累加

MyString = MyString & " " & EndChar

Next

End With

MsgBox "所选内容句子数:" & SenCount & vbCrLf & "结束标点分别为:" & MyString

End Sub

代码截图:

由于在程序中大部分我都做了注释,只是再简单的讲解一下:

上面的程序中需要注意的是对于有选择和没有选择的判断,这里是根据Selection.Type 的值来进行判断的,对于这个值可以有很多种类型,如下:

wdNoSelection 0 No selection.

wdSelectionBlock 6 A block selection.

wdSelectionColumn 4 A column selection.

wdSelectionFrame 3 A frame selection.

wdSelectionInlineShape 7 An inline shape selection.

wdSelectionIP 1 An inline paragraph selection.

wdSelectionNormal 2 A normal or user-defined selection.

wdSelectionRow 5 A row selection.

wdSelectionShape 8 A shape selection.

这里我用的是wdNoSelection也可以用wdSelectionIP,也可以表示没有任何的选中结果,对于这个词语的解释,后者wdSelectionIP的对应英文解释An inline paragraph selection。目前我还没有看到有那种翻译是较为合适的,好在我们的目的是应用,记住就可以了。

下面我们看程序的运行:

在上述的文档中选择了部分文字,运行结果:

今日内容回向:

1 WORD中的循环,你是否明白呢?

2 如何请计算出选择的句子数呢?

本文如果对你有帮助,请点赞收藏《VBA代码解决方案第146讲:如何自动实现Word文档的信息统计》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(1)
  1. 点亮希望2023-12-26 07:15点亮希望[陕西省网友]116.89.159.0
    这个系列教程真的太有帮助了,学会了不少实用的技巧,期待更多的分享!
    顶0踩0
相关阅读
启用“宏”需谨慎:新型Word文档勒索软件qkG来袭

启用“宏”需谨慎:新型Word文档勒索软件qkG来袭

并且,其开发者正不间断的持续发布新的版本

2012-08-22 #经典句子

慢步Python:输出word文档内每段前10个字 在编写中学习知识点

慢步Python:输出word文档内每段前10个字 在编写中学习知识点

主要内容如下:数据类型错误、遍历结构、判断语句,列表及字符串的切片首先创造一个word文档慢步用自己昨天发的文章内容吧慢步python,教你怎么通过pytho

2020-05-24 #经典句子

使用word文档查找和替换功能 快速提取中文

使用word文档查找和替换功能 快速提取中文

我们首先打开查找和替换对话框,在查找中输入代码:^1^127,az,AZ,09,在替换为中不输入内容,并且勾选使用通配符,最后点击全部替换就可以了

2017-02-06 #经典句子

word文本处理技巧:这几个小招数你会用的有哪些?

word文本处理技巧:这几个小招数你会用的有哪些?

如,各类报告、论文、策划书等等,必不可少都得要用到word

2023-07-22 #经典句子

即使我英语不好 也想给你分享这款国外的PPT插件 尝尝鲜?

即使我英语不好 也想给你分享这款国外的PPT插件 尝尝鲜?

我专门写文推荐过 3 款国内的 PPT 插件,每一款是功能强大的效率神器,如果错过了,可以回头翻翻看:PPT效率神器,这款人人赞爆的插件,开发者五年后

2018-06-05 #经典句子

VBA数组函数 差值的取得以及利用FileCopy语句复制文件

VBA数组函数 差值的取得以及利用FileCopy语句复制文件

大家好,今日内容仍是和大家分享VBA编程中常用的简单积木过程代码,这些内容大多是取至我编写的VBA代码解决方案教程中内容

2024-01-07 #经典句子

值得你珍藏的VBA编程常用语句

值得你珍藏的VBA编程常用语句

大家好,今天继续和大家分享VBA编程中常用的过程代码

2008-01-01 #经典句子

分享一组实用的VBA常用编程代码语句

分享一组实用的VBA常用编程代码语句

大家好,今天继续和大家分享VBA编程中常用的过程代码

2012-10-17 #经典句子