ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] Word2003VBA 查找方法通用代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-17 14:13 | 显示全部楼层 |阅读模式
  1. Sub Find_ActiveDocument_通用()
  2. '全文查找:不激活对象,不选定文字内容,查找前后光标不动,速度极快!
  3.     With ActiveDocument.Content.Find
  4.         .ClearFormatting
  5.         .Text = "" '此处自定义查找内容
  6.         .Forward = True
  7.         .MatchWildcards = True
  8.         Do While .Execute
  9.             With .Parent
  10.                 .Select '确定查找对象是否正确(用后屏蔽或删除此语句)
  11.             End With
  12.         Loop
  13.     End With
  14. End Sub
  15. Sub Find_Selection_通用()
  16. '全文查找:激活对象,选定文字内容,查找前后光标移动,速度一般较慢!
  17.     With Selection
  18.         .HomeKey Unit:=wdStory
  19.         With .Find
  20.             .ClearFormatting
  21.             .Text = "[0-9]{1,}" '此处自定义查找内容
  22.             .Forward = True
  23.             .MatchWildcards = True
  24.             Do While .Execute
  25.                 With .Parent
  26.                     .Font.Color = wdColorRed '红色(设置格式)
  27.                 End With
  28.             Loop
  29.         End With
  30.     End With
  31. End Sub
  32. Sub Find_Range_通用()
  33. '区域查找:不激活对象,仅在选定区域内查找文字,速度较快!
  34.     Dim r As Range, a As Range
  35.     With Selection
  36.         Set r = .Range
  37.         Set a = .Range
  38.     End With
  39.     With r.Find
  40.         .ClearFormatting
  41.         .Text = "[0-9]{1,}" '此处自定义查找内容
  42.         .Forward = True
  43.         .MatchWildcards = True
  44.         Do While .Execute
  45.             With .Parent
  46.                 .Font.Color = wdColorRed '红色(设置格式)
  47.                 .SetRange Start:=.End, End:=a.End
  48.             End With
  49.         Loop
  50.     End With
  51. End Sub
  52. Sub Find_循环遍历所有段落()
  53.     Dim i As Paragraph
  54.     For Each i In ActiveDocument.Paragraphs
  55.         With i.Range
  56.             If .Text Like "*[0-9]*" Then .Font.Color = wdColorRed '此行自定义
  57.         End With
  58.     Next
  59. End Sub
  60. Sub Find_循环遍历选定区域()
  61.     Dim i As Paragraph
  62.     For Each i In Selection.Paragraphs
  63.         With i.Range
  64.             If .Text Like "*[0-9]*" Then .Font.Color = wdColorRed '此行自定义
  65.         End With
  66.     Next
  67. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-2-17 17:29 | 显示全部楼层
感谢分享


  1. Sub Find_ActiveDocument_通用()
  2. '全文查找:不激活对象,不选定文字内容,查找前后光标不动,速度极快!
  3.     With ActiveDocument.Content.Find
  4.         .ClearFormatting
  5.         .Text = "" '此处自定义查找内容
  6.         .Forward = True
  7.         .MatchWildcards = True
  8.         Do While .Execute
  9.             With .Parent
  10.                 .Select '确定查找对象是否正确(用后屏蔽或删除此语句)
  11.             End With
  12.         Loop
  13.     End With
  14. End Sub
  15. Sub Find_Selection_通用()
  16. '全文查找:激活对象,选定文字内容,查找前后光标移动,速度一般较慢!
  17.     With Selection
  18.         .HomeKey Unit:=wdStory
  19.         With .Find
  20.             .ClearFormatting
  21.             .Text = "[0-9]{1,}" '此处自定义查找内容
  22.             .Forward = True
  23.             .MatchWildcards = True
  24.             Do While .Execute
  25.                 With .Parent
  26.                     .Font.Color = wdColorRed '红色(设置格式)
  27.                 End With
  28.             Loop
  29.         End With
  30.     End With
  31. End Sub
  32. Sub Find_Range_通用()
  33. '区域查找:不激活对象,仅在选定区域内查找文字,速度较快!
  34.     Dim r As Range, a As Range
  35.     With Selection
  36.         Set r = .Range
  37.         Set a = .Range
  38.     End With
  39.     With r.Find
  40.         .ClearFormatting
  41.         .Text = "[0-9]{1,}" '此处自定义查找内容
  42.         .Forward = True
  43.         .MatchWildcards = True
  44.         Do While .Execute
  45.             With .Parent
  46.                 .Font.Color = wdColorRed '红色(设置格式)
  47.                 .SetRange Start:=.End, End:=a.End
  48.             End With
  49.         Loop
  50.     End With
  51. End Sub
  52. Sub Find_循环遍历所有段落()
  53.     Dim i As Paragraph
  54.     For Each i In ActiveDocument.Paragraphs
  55.         With i.Range
  56.             If .Text Like "*[0-9]*" Then .Font.Color = wdColorRed '此行自定义
  57.         End With
  58.     Next
  59. End Sub
  60. Sub Find_循环遍历选定区域()
  61.     Dim i As Paragraph
  62.     For Each i In Selection.Paragraphs
  63.         With i.Range
  64.             If .Text Like "*[0-9]*" Then .Font.Color = wdColorRed '此行自定义
  65.         End With
  66.     Next
  67. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-18 10:53 | 显示全部楼层
VBEE 老师:是乱码吗?过年好!敬请批评指正。
附上纯文本代码: Macro查找(通用).rar (749 Bytes, 下载次数: 33)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 14:22 , Processed in 0.018965 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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