因此,我只想删除英文和中文文档中的简体中文文本。这些文档没有段落使用哪种语言的任何固定模式。
我已经尝试了下面的代码,但是我不断遇到错误。我已经尝试了一些按段和按语言搜索的代码版本,但似乎无法使它正常工作。
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行上需要一个对象。
我可能误解了一些非常基本的东西,因此任何帮助将不胜感激:)
答案 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
希望这会有所帮助。