ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 过客fppt

[求助] 如何用VBA将Word文档中的域代码公式复制为图片,求大家指点

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-9-15 16:15 | 显示全部楼层
chsevenfive 发表于 2023-9-15 10:53
你好  写好的宏 可以分享一下吗
  1. <blockquote>Option Explicit
复制代码
代码如上所示:

但是只能用于这个类型的公式的转化:
image.png
其他的公式不够正确,还不知道如何处理

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-9-15 16:18 | 显示全部楼层
本帖最后由 过客fppt 于 2023-9-15 16:21 编辑
过客fppt 发表于 2023-9-15 16:15
代码如上所示:

但是只能用于这个类型的公式的转化:
不知道为什么代码总是粘贴不出来

Option ExplicitPublic isyunxing As Boolean
Sub EQ公式转化为LaTeX公式规范上标()
    If isyunxing = True Then        GoTo line1    End If        Dim rng As Range    Set rng = IIf(Len(Selection.Range.Text) <= 1, ActiveDocument.Content, Selection.Range)' 显示域代码    rng.Fields.ToggleShowCodes        Call 全部替换("[0-9]", "#s#up3(^&)", True, True)    Call 全部替换("#", "\", False, True)    rng.Fields.ToggleShowCodes
    MsgBox "第一步已完成,请依次次进行以下操作后,再运行代码:" & vbCrLf & _       "1. 用MathType转化公式" & vbCrLf & _       "2. 用MathType切换TeX" '& vbCrLf & vbCrLf & _    isyunxing = True    Exit Subline1:    Call 全部替换("\[", "$", False)    Call 全部替换("\]", "$", False)    Call 全部替换("eth", "pi", False)    MsgBox "第二步完成,请进行以下操作:" & vbCrLf & _       "1、用MathType切换TeX"    isyunxing = False    MsgBox "第三步,请最后一次进行以下操作:" & vbCrLf & _       "1、用MathType切换TeX"
End SubFunction 全部替换(原文字, 替换为, 通配符, Optional ByVal 上标 As Boolean = False)
' 宏由 ZPL 录制,时间: 2022/12/07
Dim rng As Range
    Set rng = IIf(Len(Selection.Range.Text) <= 1, ActiveDocument.Content, Selection.Range)
    rng.Find.ClearFormatting
    With rng.Find
        .Font.Superscript = 上标
        .Text = 原文字
        .Forward = True
        .Wrap = wdFindStop 'Wrap = wdFindAsk(找到会弹出提示框)'Wrap = wdFindStop(完成替换会停止)
        .MatchCase = False 'True 指定要查找的文本应区分大小写。
        .MatchByte = False   '搜索期间区分全角和半角字母或字符,则此属性返回 True ;否则返回 False 。 将属性值设置为 True 或 False 以启用或禁用该功能。
        .MatchWildcards = 通配符 '通配符开关
        .MatchWholeWord = False '真 要查找只整个单词,全字匹配。
        .MatchFuzzy = False '确定 Microsoft Word 在搜索过程中是否对日语文本使用非特定搜索选项
        .Replacement.Text = 替换为
    End With
    rng.Find.Execute Replace:=wdReplaceAll
    rng.Find.Replacement.Text = 替换为
    rng.Find.ClearFormatting

End Function


TA的精华主题

TA的得分主题

发表于 2023-9-15 17:37 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-9-15 17:40 编辑
过客fppt 发表于 2023-9-15 16:18
不知道为什么代码总是粘贴不出来

Option ExplicitPublic isyunxing As Boolean

其实可以更智能一些,识别code中的文字,如果是上标,修改成EQ域的up开关,如果是下标,修改成do开关,包括+-,pi都可以一并修改了

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-9-15 19:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
batmanbbs 发表于 2023-9-15 17:37
其实可以更智能一些,识别code中的文字,如果是上标,修改成EQ域的up开关,如果是下标,修改成do开关,包 ...

batmanbbs 老师说得非常正确,比如下面这个图片,就是因为把EQ公式code之外的下标都替换了导致的情况: image.png

附件中有我最新的代码,请老师指点!

EQ公式转化为LaTeX公式规范化.zip

45.79 KB, 下载次数: 30

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-9-16 23:22 | 显示全部楼层
过客fppt 发表于 2023-9-15 19:25
batmanbbs 老师说得非常正确,比如下面这个图片,就是因为把EQ公式code之外的下标都替换了导致的情况:
...

只对公式内部进行查找替换,优化了Eq公式之外的上下标被替换的问题。
Cache_-19e2bbb2f5da4b9a.jpg

TA的精华主题

TA的得分主题

发表于 2023-10-13 13:36 | 显示全部楼层
zhanglei1371 发表于 2023-8-15 20:11
试试这个,win10刚测试正常:

Sub test()

之前还好好的,重装了系统,再测试的时候,就不能用了,具体的是,只删除了选中的内容,没生成图片,求大神教一下。

TA的精华主题

TA的得分主题

发表于 2023-10-13 13:37 | 显示全部楼层
过客fppt 发表于 2023-8-16 09:41
非常感谢 zhanglei1371 老师的帮助,这次运行.exe会弹窗提示成功了,但是在Word中还是没有找到对应 ...

我这也是这个问题,使用管理权限在注册,在vba中就出现了。

TA的精华主题

TA的得分主题

发表于 2023-10-16 20:54 | 显示全部楼层
最早我也尝试过转图片,但是有很多限制,eq直接转omath才是王道,缺点之一是不能转化学公式,不过这种情况比较少,效果展示:https://aidocx.com/otherfunc/upload/2

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-10-17 08:56 | 显示全部楼层
cuteword 发表于 2023-10-16 20:54
最早我也尝试过转图片,但是有很多限制,eq直接转omath才是王道,缺点之一是不能转化学公式,不过这种情况 ...

谢谢,但是感觉转化后在预览界面发现有点奇怪,一些公式也没有显示出来

原文档:
image.png
转化后:
image.jpg

TA的精华主题

TA的得分主题

发表于 2023-10-17 12:27 | 显示全部楼层
注册个账号,可以下载下来看,预览会有些问题
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 19:20 , Processed in 0.036040 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表