|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 413191246se 于 2018-12-28 18:58 编辑
* 这两天,跟 ming0018 老师 学到一手,就是《查找和替换》操作中,把查找文本/通配符/向前属性 要放在循环外面,循环里面只留一个 .Execute 即可,这样查找速度特别快!测试通过。
* 我过去都是这样写:Do While .Execute("aa",,,1,,,1) 两个1分别是通配符和 向前(Forward)属性为TRUE,但实践证明,这样写很好看,都在一行,但是速度不敢恭维,还是 ming0018 老师 的写法速度极快!
* 我希望大家以后写查找语句时都要如此。
*下面是依照 ming0018 老师 的写法查找词语并设置为红色的示例,两者几乎一样快(但都没加 .ClearFormatting清除格式,这有待观察),感兴趣的朋友们可以测试一下:
* 优化前:.64秒,优化后:.53秒(如果连.ClearFormatting等语句也不要,则继续提速为:.46秒)
* 但为了保险起见,最好是,.ClearFormatting 和 .Forward=True 和 .MatchWildcards=True 这三行语句也要写上,以免哪天查找时看得见,找不到。
* 更新后的代码:
- Sub 查找词语转红色1()
- With ActiveDocument.Content.Find
- .ClearFormatting
- .Text = "校园"
- .Forward = True
- .MatchWildcards = True
- Do While .Execute
- .Parent.Font.Color = wdColorRed '红色
- Loop
- End With
- End Sub
- Sub 查找词语转红色2()
- With Selection.Find
- .Parent.HomeKey Unit:=wdStory
- .Text = "校园"
- .Forward = True
- .MatchWildcards = True
- Do While .Execute
- .Parent.Font.Color = wdColorRed '红色
- Loop
- End With
- End Sub
复制代码 |
|