ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 除药方以外,含有药材名的黑色段落变色

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-22 11:19 | 显示全部楼层
写了一个替代方案:楼主需要设置蓝色的段落均系医药家的评述,为古语表达,带有“之、乎、也”的语气助词,故将包含“之、乎、也”的段落设置蓝色。
该方案不完美,可能存在部分段落遗漏(评述段中没有“之、乎、也”)、或不属于医药家评述段也设置为蓝色(其他段落包含了“之、乎、也”),需要手工更正。

中药材段落区分2.zip

16.26 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2022-11-22 16:28 | 显示全部楼层
这个要怎么弄呢,座等高手。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-23 06:33 | 显示全部楼层
本帖最后由 相见是缘8 于 2022-11-23 06:35 编辑
likaiyihou 发表于 2022-11-22 11:19
写了一个替代方案:楼主需要设置蓝色的段落均系医药家的评述,为古语表达,带有“之、乎、也”的语气助词, ...

likaiyihou 老师好!
感谢你援手相助!谢谢!
我最终的目的,就是把文档中,除  “药方”  段落中的药材名外,其它的段落中的药材名,全部加上中文双引号,可中药材名有几万种之多,以前为这个发过求助帖,z9bhd 和 tcdatongye 老师写的代码以解决。
https://club.excelhome.net/thread-1579775-1-1.html   67楼。
我用这2位老师写的代码,可以给文档中的中药材名加上中文双引号,但问题是:它把文档中所有的中药材名,都加上了中文双引号,因  “药方”  中的药材名,不允许加上中文双引号,所以才想利用变色来把它们区分开来,以便精准的查找到要加中文双引号的中药材名。
不知老师你是否有更好的办法避开它?因我的几个实际文档,都有2~3千页不等,如用手工修改,需要很长很长的时间!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-23 06:44 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-11-23 08:49 | 显示全部楼层
相见是缘8 发表于 2022-11-23 06:33
likaiyihou 老师好!
感谢你援手相助!谢谢!
我最终的目的,就是把文档中,除  “药方”  段落中的药 ...

可能我电脑有点问题,看不到67楼附件中的代码,不清楚到底是如何具体实现的。针对你所述的目的,简单说一下我的思路:
1、根据z9bhd 和 tcdatongye 老师的代码,对中药材名加上中文双引号;
2、识别同时包含有中文双引号、包含有斤两钱克等计量单位、不包含“之乎者也”语气助词的段落(可利用正则表达式或者instr函数实现)。
3、对识别出来的段落去掉中文双引号(可利用正则表达式或者replace函数实现)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-23 10:09 | 显示全部楼层
likaiyihou 发表于 2022-11-23 08:49
可能我电脑有点问题,看不到67楼附件中的代码,不清楚到底是如何具体实现的。针对你所述的目的,简单说一 ...

likaiyihou老师好!
请看两位老师的代码!
Sub 中药材名后加双引号()
'只对黑色的中药材名后加双引号。
'把“测试的文档”和“替换的关键字符”的文档,放在同一个新建的文件夹内,因它要调用“替换的关键字符的文档” 。
'这个代码,它要打开“测试的文档”,打开“代码窗口”,在左边的“代码窗口”,在下面找到那个“测试的文档”点一下鼠标右键,→插入→模块,把代码粘贴进去,才可。
    Dim rng As Range
    Set wd = GetObject(ThisDocument.Path &"\替换的关键字符.doc")
        arr = Split(wd.Range, Chr(13))
        wd.Close savechanges:=False
        Set rng = Selection.Range
        For i = 0 To UBound(arr) - 1
        rng.StartOf unit:=wdStory
        Application.StatusBar = "正在替换" & i & "-->" & arr(i)
        With rng.Find  '查找设置。
            .MatchWildcards = True  '勾选“使用通配符”。
            .Text = arr(i)
            .Font.ColorIndex = wdBlack  '字体颜色、黑色。
            .Format = True  '查找格式。
            .Replacement.Text = "“^&”"  '替换的字不变,加双引号。
            .Execute Replace:=wdReplaceAll  '全部替换。
        End With
    Next i
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-23 11:07 | 显示全部楼层
本帖最后由 相见是缘8 于 2022-11-23 12:53 编辑
likaiyihou 发表于 2022-11-23 08:49
可能我电脑有点问题,看不到67楼附件中的代码,不清楚到底是如何具体实现的。针对你所述的目的,简单说一 ...

发重了,删除。
      

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-25 06:34 | 显示全部楼层
likaiyihou 发表于 2022-11-23 08:49
可能我电脑有点问题,看不到67楼附件中的代码,不清楚到底是如何具体实现的。针对你所述的目的,简单说一 ...

likaiyihou 老师,你有空写个代码,帮我解决这个问题吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-3 09:34 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-20 15:36 , Processed in 0.039159 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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