作者:绿色风
分类:
时间:2022-08-18
浏览:162
楼主 wjc2090742 |
Q:Word中如何将指定的单词批量设置为斜体?如下面2图,需要将上图文档中EGFR、KRAS、BRAF这3个单词批量设置为斜体,如下图中效果。使用查找替换,需要3次操作,能否批量完成呢?
A:思路:利用正则,匹配这3个单词。利用匹配项的firstindex和Length属性来确定文档中要设置为斜体的文字范围。代码:- Sub text()
- Dim str$, reg As Object, ma As Object
- str = ActiveDocument.Range.text
- Set reg = CreateObject("vbscript.regexp")
- With reg
- .Global = True
- .IgnoreCase = False
- .MultiLine = True
- .Pattern = "EGFR|KRAS|BRAF"
- End With
- For Each ma In reg.Execute(str)
- ActiveDocument.Range(ma.firstindex, ma.firstindex + ma.Length).Font.Italic = True
- Next
- Set reg = Nothing: Set ma = Nothing
- End Sub
该帖已经同步到 wjc2090742的微博 Word中如何将指定的单词批量设置为斜体?.rar |
2楼 chenlifeng |
昨晚尝试贵贴到今晨,发现不足: 我用自己的文档一试,且改变代码中的两句话: .Pattern = "婚|京" ActiveDocument.range(ma.firstindex, ma.firstindex + ma.Length).Font.Color = vbRed 其余未动分毫,结果,其它字眼也变成红色了。 |
3楼 wjc2090742 |
以回答你的问题的经验来说,首先请新建文档尝试,另外可以提问并提交附件来看看。 |
4楼 chenlifeng |
刚才又尝试了下,并把电脑关机重新打开来试,结果发现:可以了。 今天早上七点的时候,确实是不成功的。估计是当前WORD文件在某方面特殊影响的缘故。 |
5楼 chenlifeng |
- Sub Macro4()
- Dim str$, reg As Object, Ma As Object
- str = ActiveDocument.range.text
- Set reg = CreateObject("vbscript.regexp")
- With reg
- .Global = True
- .IgnoreCase = False
- .MultiLine = True
- .Pattern = "地|年"
- End With
- For Each Ma In reg.Execute(str)
- ActiveDocument.range(Ma.firstindex, Ma.firstindex + Ma.Length).Font.Color = vbRed
- Next
- Set reg = Nothing: Set Ma = Nothing
- End Sub
已经上传了附件,还是不成,把不该替换的也替换了,我用下面的代码,我执行代码是在normal中:
举例.rar |
6楼 chenlifeng |
说明:上面代码只是把目标字符改为颜色,而我的真正用意,是把这个查找到的字符,通通从当前文档中开除(删掉),我不会用。 |
7楼 wjc2090742 |
明天再看吧,打球回来,洗澡了看看书就睡了。另外为什么在normal中啊?你可以创建一个模板,需要时引用就好了,你翻翻,我答过这样的帖子。或者你请教下罗版,做成加载项,这样灵活多了。 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一