如何删除某种语言的段落?

时间:2019-01-27 22:42:22

标签: vba ms-word word-vba-mac

因此,我只想删除英文和中文文档中的简体中文文本。这些文档没有段落使用哪种语言的任何固定模式。

我已经尝试了下面的代码,但是我不断遇到错误。我已经尝试了一些按段和按语言搜索的代码版本,但似乎无法使它正常工作。

Sub DeleteCN()
    iParCount = ActiveDocument.Paragraphs.Count
    For J = 1 To iParCount
        sMyPar = ActiveDocument.Paragraphs(J).Range.Text
        If sMyPar.WdLanguageID = wdSimplifiedChinese Then
            sMyPar.Delete
        End If
    Next J
End Sub

理想情况下,该代码将从文档中删除大部分中文段落(如果不是全部的话)。但是,我最近一次尝试遇到的错误是If行上需要一个对象。

我可能误解了一些非常基本的东西,因此任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

您的代码有一些问题。

1)最严重的是您必须反转循环。该循环必须反向,因为删除段落时,段落数将动态变化,以后的段落将不再存在。

2)剩下的是语法错误,您可以在代码中看到语法的更新位置。如果声明了变量,则更容易知道正确的语法。

Sub DeleteCN()

Dim iParaCount As Integer
Dim para As Paragraph

iParaCount = ActiveDocument.Paragraphs.Count

For J = iParaCount To 1 Step -1
    Set para = ActiveDocument.Paragraphs(J)
    If para.Range.LanguageID = wdSimplifiedChinese Then
        para.Range.Delete
    End If
Next J

End Sub

希望这会有所帮助。