我有大约100个Word文档,其中包括外语名称的音译。这些文档的作者使用了一种名为 e2 的特殊字体,它有大约十二个特殊的音译字符(所有这些字符都以Microsoft Sans Serif字体提供)。
我想遍历文档的每个字母,每当.Font = "e2"
我想循环打十几个字母时(很容易猜到它们是什么),并用Microsoft Sans Serif等效字母替换它们。但我无法弄清楚你如何循环通过字母。这是否可以像在Excel电子表格中循环遍历单元格一样?
答案 0 :(得分:4)
这是一种方法,但根据文档的大小,可能需要很长时间才能执行。
Sub ChangeFonts()
Dim doc As Document
Set doc = ActiveDocument
For i = 1 To doc.Range.Characters.Count
If doc.Range.Characters(i).Font.Name = "e2" Then
doc.Range.Characters(i).Font.Name = "Microsoft Sans Serif"
End If
Next
End Sub
答案 1 :(得分:0)
您也可以将其保存为docx,在zip文件中打开它,并在document.xml和fontTable.xml中进行搜索/替换。
答案 2 :(得分:0)
方法更快:
Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Font.Name = "e2"
.Replacement.Font.Name = "Microsoft Sans Serif"
.Forward = True
.Format = True
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
End With
Application.ScreenUpdating = True
End Sub
答案 3 :(得分:-1)
使用mswords格式查找&更换。你会节省时间和时间大文件不会成为问题。