ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 向前辈们求二个去除 “突出显示” 的宏

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-12-22 18:10 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 13907933959 于 2016-12-22 18:29 编辑

文档内有多种 突出显示的颜色
第一个宏:将红色、蓝色的  “突出显示”  全部删除,保留文字。
第二个宏:将红色的  “突出显示”  转为红色的文字,蓝色的 突出显示”  转为蓝色的文字。
求前辈们赐教!谢谢!

模拟附件:.rar

3.77 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2016-12-22 21:29 | 显示全部楼层
本帖最后由 413191246se 于 2016-12-24 21:24 编辑

探索半天,终于成功!但算法并不高明,算是抛砖引玉,期盼 杜先生(duquancai)等高人指正!——139 请在处理时耐心等待一下。思路:查找突出显示文字,找到后对选定区域逐字符处理(此算法相对较慢,可能 杜先生 等高人会有更好的办法)。(代码略。)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-23 10:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 13907933959 于 2016-12-23 11:01 编辑
413191246se 发表于 2016-12-22 21:29
探索半天,终于成功!但算法并不高明,算是抛砖引玉,期盼 杜先生(duquancai)等高人指正!——139 请在处 ...
师傅好!
抱歉!难为了您!
慢是慢一些,但也能用!杜前辈这一段时间可能较忙,看他回复的较少,期待他有空能帮忙编写一个速度更快的!
感谢师傅!!!


TA的精华主题

TA的得分主题

发表于 2016-12-23 14:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
13907933959 发表于 2016-12-23 10:35
师傅好!
抱歉!难为了您!
慢是慢一些,但也能用!杜前辈这一段时间可能较忙,看他回复的较少,期待他有 ...

两个需求其实就是一个需求!!!我只写你第二个需求吧!
  1. Sub HighlightColorToColor()
  2.     Dim mt, n&, m&
  3.     With CreateObject("vbscript.regexp")
  4.         .Global = True: .IgnoreCase = False
  5.         .Pattern = "[^\r]"
  6.         For Each mt In .Execute(ActiveDocument.Content)
  7.             m = mt.FirstIndex: n = mt.Length
  8.             With ActiveDocument.Range(m, m + n)
  9.                 If .HighlightColorIndex = wdRed Or .HighlightColorIndex = wdBlue Then
  10.                     .Font.ColorIndex = .HighlightColorIndex
  11.                     .HighlightColorIndex = wdNoHighlight
  12.                 End If
  13.             End With
  14.         Next
  15.     End With
  16. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-23 16:40 | 显示全部楼层
本帖最后由 13907933959 于 2016-12-25 06:44 编辑
duquancai 发表于 2016-12-23 14:09
两个需求其实就是一个需求!!!我只写你第二个需求吧!

杜前辈好!
代码较我师傅的短了不少,速度也快了。非常感谢!
前辈、能不能劳您再满足第一个要求?将红色、蓝色的 “突出显示” 全部删除,保留文字。(文字不要变色,删除了 “突出显示” 即可)。
因要处理的文件较多,我师傅给的代码有时会死机,(可能是我的电脑配置太低或文件较大的原因),望前辈能再出手相助!

另外、问一下前辈,这句 s = s & .Parent& vbCr 语句是什么意思?谢谢!

TA的精华主题

TA的得分主题

发表于 2016-12-23 19:08 | 显示全部楼层
13907933959 发表于 2016-12-23 16:40
杜前辈好!
代码较我师傅的短了不少,速度也快了。非常感谢!
前辈、能不能劳您再满足第一个要求?将红 ...

自己仿写一个就是了。
  1. Sub 删除突出显示_红突蓝突()
  2.     Dim mt, n&, m&
  3.     With CreateObject("vbscript.regexp")
  4.         .Global = True: .IgnoreCase = False
  5.         .Pattern = "[^\r]"
  6.         For Each mt In .Execute(ActiveDocument.Content)
  7.             m = mt.FirstIndex: n = mt.Length
  8.             With ActiveDocument.Range(m, m + n)
  9.                 If .HighlightColorIndex = wdRed Or .HighlightColorIndex = wdBlue Then
  10.                     .HighlightColorIndex = wdNoHighlight
  11.                 End If
  12.             End With
  13.         Next
  14.     End With
  15. End Sub
复制代码


TA的精华主题

TA的得分主题

发表于 2016-12-23 19:11 | 显示全部楼层
本帖最后由 sandorn 于 2016-12-23 19:12 编辑
duquancai 发表于 2016-12-23 14:09
两个需求其实就是一个需求!!!我只写你第二个需求吧!

请教个问题,你代码中写到
.Pattern = "[^\r]"
我了解是正则,但是你的表达式看不懂,[^\r]表示回车以外的其他字符吗?
为什么不用 .Pattern = "."  呢???
请指教,谢谢!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-24 08:23 | 显示全部楼层
本帖最后由 13907933959 于 2016-12-25 06:42 编辑
sandorn 发表于 2016-12-23 19:08
自己仿写一个就是了。

前辈好!
可以了,对 VBA 我还处在免强会用的阶段,修改代码
我的水平还不够!
感谢您的出手相助!谢谢!
另外、问一下前辈,这句 s = s & .Parent& vbCr 语句是什么意思?

TA的精华主题

TA的得分主题

发表于 2016-12-26 07:38 | 显示全部楼层
13907933959 发表于 2016-12-24 08:23
前辈好!
可以了,对 VBA 我还处在免强会用的阶段,修改代码我的水平还不够!感谢您的出手相助!谢谢! ...

就是把字符串s后面连接上一个字符串,再加上回车。
连接上的字符串是前一个with的父对象
我是这样理解的,不知道对不对

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-26 08:06 | 显示全部楼层
sandorn 发表于 2016-12-26 07:38
就是把字符串s后面连接上一个字符串,再加上回车。
连接上的字符串是前一个with的父对象
我是这样理解 ...

前辈好!
我虽还是看不太懂(因水平不够),但感谢前辈赐教!谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 13:57 , Processed in 0.024512 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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