如何删除某种语言的段落?
How do I delete paragraphs of a certain language?
我想删除中英文文档中的简体中文文本。这些文档没有任何段落使用哪种语言的固定模式。
我尝试了几个按段落和语言搜索的代码版本。
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) 最严重的是你必须反转你的循环。必须反转循环,因为当您删除一个段落时,段落数会动态变化,然后以后的段落将不再存在。
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
希望对您有所帮助。
我想删除中英文文档中的简体中文文本。这些文档没有任何段落使用哪种语言的固定模式。
我尝试了几个按段落和语言搜索的代码版本。
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) 最严重的是你必须反转你的循环。必须反转循环,因为当您删除一个段落时,段落数会动态变化,然后以后的段落将不再存在。
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
希望对您有所帮助。