常规查找和替换不执行任何操作。因此,我正在处理Visual Basic中的此程序,以便在MSWord中运行。
Word中的公式使用字体Cambria Math, italic
。
我想将所有方程式更改为Cambria Math, non-italic (regular)
。
我在网上找到了这个程序,并做了一些修改。
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 17/05/2004 by Tony
'
Selection.Find.Font.Italic = True
Selection.Find.Font.Name = "Cambria Math"
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub
这会找到文本,但不会更改任何内容,而是逐个进行,而不是整个文档。
我也尝试了这个其他脚本,但是没有运气。
Sub ReplaceItalic()
With ActiveDocument.Content.Find
.Font.Name = "Cambria Math"
.Font.Italic = True
With .Replacement
.Font.Italic = False
End With
.Execute FindText:="", ReplaceWith:="", _
Format:=True, Replace:=wdReplaceAll
End With
End Sub
答案 0 :(得分:1)
我认为我明白了。您遇到的问题是方程式不是普通文本,而是OMath
object的一部分。因此,值得庆幸的是,我们要做的就是遍历所有OMath
对象并适当地设置它们的Range.Font
!
Sub EquationItalics()
Dim equation As OMath
For Each equation In ActiveDocument.OMaths
equation.Range.Font.Italic = False
Next equation
End Sub