Word:字符横式分数转换为竖式分数

目录

一、问题设定

二、思路分析

1.第一步:定位公式区域

(1)方法概述

(2)操作

2.转换为公式

(1)手动操作

(2)Word VBA代码操作

三、补充

四、总结

1.重视Word替换

2.关键要学习思路


一、问题设定

假如现在有如下文档,需要将里面所有字符形式的分工改成数学公式(且是竖式)

示例文档

二、思路分析

1.第一步:定位公式区域

(1)方法概述

因为字符形式的分式有明显的规律,即数字(1位或多位)+“/”+数字(1位或多位)。这样就可以用Word自带的批处理功能【通配符查找替换】一次性选中所有符合要求的字符串(即每个分式区域)。

这一步的方法基本固定,不推荐其他复杂方法;如果有更简单方法找到分式区域,欢迎交流。

(2)操作

A.参数

查找框:[0-9]{1,}/[0-9]{1,}
勾选【使用通配符】
通配符查找参数预览

B.全选

点击【在以下项中查找】-【当前所选内容】(只对事先已经选择的区域生效)/【主文档】(对整篇文档生效)

当前所选文档-主文档

这样,所有符合条件的公式区域就选中了

已选中所有公式区域

2.转换为公式

这里有两种推荐方法:手动操作和VBA代码操作(因为当文档里公式过多的时候,手动可能卡死;而代码用的循环方法,一般不会卡死)

如果您不会代码操作,只需手动操作即可

(1)手动操作

A.点击【插入】选项卡-【公式】-【插入新公式】

插入新公式

B.此时,所选区域,全部由变通文本变成了Word自带公式(Omath公式)

普通文本变成公式了

但是还有问题,这时候的公式显示形式还是横式(公式中间仍是斜杠)。

原因:此时的公式是Omath公式的线性形式

C.我们需要将公式全部转换成Omath公式的专业形式

点击上方【公式】菜单-【转换】-【全部-专业】

公式转成【专业型】

D.完成,效果如下:

手动转换完成

(2)Word VBA代码操作

A.思路

a.遍历待处理的公式区域

查找时不用全选,而是相当于点【下一处】,这样每一处公式区域就可以逐一被选中

点击【下一处】

b.在选中的区域新建公式,并且将公式形式转换为【专业型】

B.示例代码

Sub 文本公式转Omath公式()
    Dim i As Integer
    Dim rng As Range
    Dim omEq As Range
    
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Forward = True
        .MatchWildcards = True
        .Wrap = wdFindStop
        .Text = "[0-9]{1,}/[0-9]{1,}"
        Do While .Execute
            Set rng = ActiveDocument.Range(.Parent.Start, .Parent.End)
            Set omEq = rng.OMaths.Add(Range:=rng)
            omEq.OMaths(1).BuildUp
            i = i + 1
            Debug.Print Format(i, "第0处处理完成")
        Loop
    End With
    
    Set rng = Nothing
    Set omEq = Nothing
    MsgBox Format(i, "完成 共处理了0处公式")
End Sub

C.执行效果

a.执行代码

代码执行步骤

但是为什么没效果呢?

因为还没点【确定】按钮,我们点一下即可:

b.完成效果

完成效果

三、补充

如果需要将公式转换成MathType公式(前提是要有较新版本的MathType公式插件),只需:

Omath公式转MathType公式

按上图设根据需要置好参数,点击【转换】,等待完成即可。

四、总结

1.重视Word替换

建议无论新手老手,操作Word排版中一定要把查找替换尤其是【通配符查找替换】当作批处理工具首选。(即使会VBA也是这样)

2.关键要学习思路

因为在实际工作中很难遇到一模一样的问题,但思路大同小异,只是具体步骤(比如查找框和替换框里的模式/内容)稍有变化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VBA-守候

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值