选择特定数量的字符

Selecting a specific number of characters

我有一些包含大量文本的 .doc 文件,我想每 217 个字符更改一次文本的颜色。前 217 个字符(包括空格)为一种颜色,接下来的 217 个字符为另一种颜色,依此类推。

但是,我还想创建一个条件:如果 217 个字符不以句点结尾,则选择必须减少到 217 之前的最后一个句点。

例如:“这辆车是蓝色的。我们要去”。在这种情况下,不会选择句子:“We need to go to the”,因为它没有以句点结尾,所以选择的是“the car is blue.”,因为它确实以句点结尾.

我不知道如何在 Word 中执行此操作,我是 VBA 的新手,我不知道是否可行,因为我已经习惯了 Excel。有人可以帮助我吗?

此代码将根据您的规则交替突出显示黄色和绿色。它可能不完美,但可以帮助您入门。

Public Sub HighlightText()
    
    Dim lStart As Long, lEnd As Long
    Dim r As Range
    Dim lColor As Long
    
    lStart = 0
    lEnd = 217
    lColor = wdBrightGreen
    Set r = ThisDocument.Range(lStart, lEnd)
    
    Do Until lEnd > ThisDocument.Range.Characters.Count
        'find the last period
        r.Find.Execute FindText:=".", Forward:=False
               
        'if found, record where it is
        If r.Find.Found Then
            lEnd = r.End
        Else
            Exit Do
        End If
        
        'highlight the range
        ThisDocument.Range(lStart, lEnd).HighlightColorIndex = lColor
        'set up for the next section
        lStart = lEnd
        lEnd = lEnd + 217
        
        'if you're not at the end, reset r
        If lEnd <= ThisDocument.Range.Characters.Count Then
            Set r = ThisDocument.Range(lStart, lEnd)
        End If
        
        'alternate colors
        If lColor = wdBrightGreen Then lColor = wdYellow Else lColor = wdBrightGreen
    Loop
    
    ThisDocument.Range(lStart, ThisDocument.Range.Characters.Count).HighlightColorIndex = lColor
    
End Sub