Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在Word中使用Visual Basic将公式中的所有Cambria数学斜体字体更改为非斜体_Vba_Ms Word - Fatal编程技术网

Vba 在Word中使用Visual Basic将公式中的所有Cambria数学斜体字体更改为非斜体

Vba 在Word中使用Visual Basic将公式中的所有Cambria数学斜体字体更改为非斜体,vba,ms-word,Vba,Ms Word,常规查找和替换不起任何作用。所以我用visualbasic处理这个程序,在MSWord中运行 Word中的方程式使用字体Cambria Math,斜体 我想将所有方程更改为Cambria Math,非斜体(常规) 我在网上找到了这个程序,并做了一些修改 Sub Macro1() ' ' Macro1 Macro ' Macro recorded 17/05/2004 by Tony ' Selection.Find.Font.Italic = True Selection.Fin

常规查找和替换不起任何作用。所以我用visualbasic处理这个程序,在MSWord中运行

Word中的方程式使用字体
Cambria Math,斜体

我想将所有方程更改为
Cambria Math,非斜体(常规)

我在网上找到了这个程序,并做了一些修改

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

我想我明白了。你遇到的问题是方程不是普通的文本,而是一个文本的一部分。谢天谢地,我们所要做的就是遍历所有的
OMath
对象,并适当地设置它们的
范围.Font

Sub EquationItalics()

    Dim equation As OMath
    For Each equation In ActiveDocument.OMaths
        equation.Range.Font.Italic = False
    Next equation

End Sub

它将出现在等式中。ConvertToNormalText将产生同样的效果。@GSerg我希望文档能够真正解释什么是“普通文本”…啊,我已经删除了这个问题。谢谢