word 代码_Word文档的信息统计,VBA代码一样可以实现

大家好,我们今日继续讲解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

代码截图:

62199c38909c6052521dbc6f7dde9cb6.png

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

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

wdNoSelection 0No selection.

wdSelectionBlock6A block selection.

wdSelectionColumn4A column selection.

wdSelectionFrame3A frame selection.

wdSelectionInlineShape7An inline shape selection.

wdSelectionIP1An inline paragraph selection.

wdSelectionNormal2A normal or user-defined selection.

wdSelectionRow5A row selection.

wdSelectionShape8A shape selection.

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

下面我们看程序的运行:

4c4fe00d8f1b6a623130702fdda93eac.png

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

58a38d7c7258c4fe1e3d7c2ed6fd340b.png

今日内容回向:

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值