引子

在对Word文档进行翻译时,如果文档中含有公式,翻译软件就会自动跳过,导致翻译出来的句子很奇怪,而如果将公式转换为普通文本之后就可以解决这个问题,所以写了个vb脚本实现Word公式和普通文本的批量互转。

代码

代码主要包含2个方法,

  1. 将公式转换为普通文本,转换后的普通文本由\[\]符号包含,从而支持之后将公式文本转换回公式,也正是由于这个原因,如果文档内包含\[\]符号的话,这种方法就不太好用了。
Sub 将公式转换为普通文本()
'
' 将公式转换为普通文本 宏
'
'Dim MathObj As OMathDim text As String' 记录当前位置Dim currentPosition As RangeSet currentPosition = Selection.Range' 将每个公式转换为文本With ActiveDocument.DeleteAllEditableRanges wdEditorEveryoneFor Each MathObj In .OMathsWith MathObj.Linearize  ' 线性化'ConvertToNormalText    ' 转换为普通文本' 选择公式.Range.Editors.Add wdEditorEveryoneActiveDocument.SelectAllEditableRanges wdEditorEveryoneActiveDocument.DeleteAllEditableRanges wdEditorEveryone' 复制所选内容Selection.Copy' 将公式转换为文本text = "\[" & Selection.text & "\]"Selection.text = text.RemoveEnd WithNextEnd With' 回到之前的位置currentPosition.Select
End Sub
  1. 将公式文本转换为公式,检测\[\]包含的文本,并转换为公式
Sub 将公式文本转换为公式()
'
' 将公式文本转换为公式 宏
'
'' 记录当前位置Dim currentPosition As RangeSet currentPosition = Selection.Range' 定位文档开头Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=0' 循环查找\[*\]字符串, 并将其中包含的文本转换为公式Do' 查找Selection.Find.ClearFormattingWith Selection.Find.text = "\\\[(*)\\\]".Replacement.text = "\1".Forward = True.Wrap = wdFindContinue.Format = False.MatchPrefix = False.MatchSuffix = False.MatchCase = False.MatchWholeWord = False.MatchWildcards = True.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute' 如果找到了公式文本就转换为公式If Selection.text Like "[\[]*[\]]" ThenDim objRange As RangeDim objEq As OMathSet objRange = Selection.RangeobjRange.text = Mid(Selection.text, 3, Selection.Characters.Count - 4)Set objRange = Selection.OMaths.Add(objRange)Set objEq = objRange.OMaths(1)objEq.BuildUpElseExit DoEnd IfLoop' 回到之前的位置currentPosition.Select
End Sub

实现Word公式和普通文本的批量互转相关推荐

  1. word公式插件_添加office小插件,让办公更高效

    Word 插件 1. 小恐龙公文排版助手 小恐龙公文排版助手可以根据国家标准格式 (GB/T 9704-2012) 的要求,可以快速设置页面版式.常用文字格式.版记.公文页码等,支持对文字进行快速排版 ...

  2. latex 公式转为 word 公式

    真是惨,帮同学改论文,发现因版本不兼容,公式全部转为图片了,需要将公式的图片转为 word 公式: 先使用 mathpix 将图片转为 latex. mathpix 软件下载地址:https://ma ...

  3. word 公式编号 右侧对齐_word排版实例:如何将文档中的公式与文字对齐

    我们在word中编写文档或写论文时,如果涉及到公式,常会出现如下所示的公式和文字对不齐的情况. 该怎么解决?下面,小编教大家一个方法. (1)将鼠标的光标定位于公式所在的段落,选择[开始]-[段落]组 ...

  4. 不同公式等号对齐_数学公式编辑器“制作amp;套用公式模板”和“文本对齐问题”的完美解决方案...

    微信公众号"中学数学教与学"教师群公告 公式编辑器中制作.套用公式模板方法以及文本对齐问题解决方法 本文主要内容: 一.公式.文字不再同一行上    解决方法一: 优点:操作简单 ...

  5. xdf文件改word_真正Txt 文本文件和Doc Word文件批量互转工具

    电近经常上网下载小说文本,电脑里一大堆,虽然文本文件简洁方便,可是用记事本打开阅读,眼睛看起来却很累,还是觉得保存为WORD文件,阅读起来更舒服,也许一个两个TXT文本,转换成WORD,我们直接打开复 ...

  6. java处理word文档 替换文本 水印 页眉

    分享一个实用工具包Spire.Doc Spire.Doc简介 导入jar包 代码示例 最近项目需要操作word文档,需求是批量替换word文档内容. 网络上各种搜索推荐POI什么的,因为以前用过POI ...

  7. 公式图片转latex神器Mathpix以及latex公式与word公式的相互转换

    公式图片识别为latex 平时在写东西的时候时常有进行公式输入的需要,比如说看了一篇论文写点东西记录一下什么的.但是在写东西的时候手动抄着那些复杂的公式让人有一种在搬砖的错觉(我之前写文档抄公式的时候 ...

  8. word 公式编辑器 右对齐 + 自动编号

    word 公式编辑器 右对齐+自动编号 编号右对齐 自动编号 1. 定义每个章节的标题级别. 2. 在每个章节后,利用快捷键Ctrl + F9 在显示的大括号内填入"SEQ chapter ...

  9. python做FPGA EG01约束文件文本格式批量更改

    python做FPGA EG01约束文件文本格式批量更改 一切机械的重复的工作都应该自动化 1.读取原文件 2.标记重要信息 3.提取重要信息 4.重新塑造格式 5.导出保存 一切机械的重复的工作都应 ...

最新文章

  1. java陷阱之自动拆箱
  2. php 自留地,重蔚自留地php基本语法-函数(附代码)
  3. 10个实用的PHP正则表达式
  4. 如果把西游记倒过来看,这才是真正的社会
  5. scrcpy投屏_scrcpy 使用教程:将安卓设备投屏到 PC 端
  6. 浅谈对程序员的认识_浅谈IT界程序员大佬普遍对性的追求
  7. Distinct源码分析
  8. python中格式化字符串
  9. python-OpenCV之numpy数组操作
  10. Axiom3D:Ogre射线与点,线,面相交,鼠标操作3维空间.
  11. Do 32-bit build only with XCode 5.1
  12. UEdit初始化加载内容偶尔失败,解决
  13. java继承案例分析,Java day5【第十四章】继承案例分析
  14. php 搜索获取排名,用PHP查询搜索引擎排名位置的代码
  15. jQuery排他思想(siblings)
  16. 阿昆同学的Java学习日记Day3
  17. 假期之不务正业—— Qt+FFmpeg+百度api进行视频的语音识别
  18. [IOS]整合google map并获取当前位置
  19. linux 创建分区 4t,CentOS6.6添加两块4T硬盘过程记录
  20. 什么是物联网安全,为什么它很重要?

热门文章

  1. 谁又在乎过你呢“main()之泪伤”
  2. 【PBL项目实战】户外智慧农场项目实战系列——1.阿里云物联网平台的开通与云端可视化应用的新建
  3. 你今天因为 YYYY-MM-dd 被提 BUG 了吗?
  4. interProScan的使用
  5. 二进制整数奇偶互换c语言,奇偶
  6. SQL Server 教程 之 一目了然
  7. HarmonyOS开发-路由组件体验
  8. 年前找工作好,还是年后找工作好?求职需警惕,小心陷入羊群效应
  9. 为什么我们求职 找工作 一定要写好简历?
  10. 计算机网络ping用法,Ping命令及用法详解