vba - 在 Word 中使用 Visual Basic 将方程式中的所有 Cambria Math 斜体字体更改为非斜体
问题描述
常规查找和替换什么都不做。所以我在 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
解决方案
我想我明白了。您遇到的问题是方程式不是普通文本,而是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
推荐阅读
- html - div的宽度和高度与屏幕宽度成正比
- angular - 使用 NGRX 刷新令牌拦截器
- java - java如何定义算术表达式的结果
- arrays - 我无法将对象转换为数组
- elasticsearch - ElasticSearch - indexing URLs and aggregating on Domains
- excel - How to Switch Columns in excel?
- python - python web scraping post form data using requests not working
- python - Python 3D 阵列水平打印
- python - 如何使用 Python 或 Pandas 提取空值之间的行
- python - 调用 groupby 函数后如何“自动填充”您的数据框?