如何用vba遍历word文档的中文词组、英语单词?

在word中都是由中文、英文组成的文本。

所有内容都是由词组组成的。

比如word中这样的一段文字:

视频提供了功能强大的方法帮助您证明您的观点。

可以分解成的词组有:

1 视频
2 提供
3
4 功能
5 强大
6
7 方法
8 帮助
9
10 证明
11
12
13 观点
14

再比如这样的一段word文本

I like apple。

可以分解成的词组有:

1
2 like 
3 apple
4
5

在word vba 中可以使用Words对象遍历词组。

比如上述两组词组都可以使用如下的代码列出:

Sub QQ1722187970()
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Dim oRng As Range
    Set oRng = oDoc.Content
    Dim oWord As Words
    For i = 1 To oRng.Words.Count
        Debug.Print oRng.Words(i).Text
    Next i
End Sub

每一个Words对象的元素都是一个Range对象,代表一个word(词组)。其中每个word词组包含了词组本身和它后面的空格分隔符。

另外每一个标点符号、段落分隔符也分别代表一个word,为了验证这一观点,可以使用如下的代码:

Sub QQ1722187970()
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Dim oRng As Range
    Set oRng = oDoc.Content
    Dim oWord As Words
    For i = 1 To oRng.Words.Count
        Debug.Print oRng.Words(i).Text, Len(oRng.Words(i))
    Next i
End Sub

如下所示可以看出每个词组所包含的字符长度:

序号 词组 长度
1 I 2
2 like 5
3 apple 5
4 1
5 1

 

       

发表评论