ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] WORD VBA 选定指定字符之间文字,然后在其中查找文字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-27 13:38 | 显示全部楼层 |阅读模式
本人VBA小白,现在想查找文档内,从47A:开始到71D:之间的内容中,是否出现关键字
弄出了下面这个代码,但是find之后不会写,请高手大神帮忙补充


Sub 查找关键字()

With Selection.Find
.MatchWildcards = True
.Wrap = wdFindContinue
.Text = "(47A:)(*)(71D:)"
.Execute
If .Found = True Then
  ActiveDocument.Range(Selection.Start, Selection.End).Select

   后面怎么写都运行不了,上面是选定了指定内容,我想在这个指定内容中查找比如”keyword“,如果存在,就msgbox("keyword")


End If

End With

End Sub


请各位大神赐教

TA的精华主题

TA的得分主题

发表于 2020-2-27 19:58 | 显示全部楼层
If .Found = True Then
  ActiveDocument.Range(Selection.Start, Selection.End).Select
    If InStr(Selection.Text, "keyword") Then MsgBox ("keyword")  '加这个
End If

TA的精华主题

TA的得分主题

发表于 2020-2-27 22:16 | 显示全部楼层
.Text = "47A:*keyword*71D:"
一步到位

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-28 11:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
非常感谢大神出手相助

TA的精华主题

TA的得分主题

发表于 2020-3-1 13:10 | 显示全部楼层
围观,大神写的真棒=^_^=



                                            莫愁前路无知己,天下谁人不识君!只道是:海内存知己,天涯若比邻!  

    TA的精华主题

    TA的得分主题

    发表于 2022-8-7 11:53 | 显示全部楼层
    [广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
    南郊三公里 发表于 2020-2-28 11:31
    非常感谢大神出手相助

    兄弟,修改后的代码可以贴出来共享一下吗?我正好也需要,谢谢

    TA的精华主题

    TA的得分主题

    发表于 2022-8-8 19:26 | 显示全部楼层
    * 如果使用 Word 2019,请将代码复制到新建文档中,再全选,剪切,粘贴到 VBE 中;否则,可能会乱码。
    1. Sub a808_Find()
    2.     Dim s$, t$, k$
    3.    
    4.     s = "47A:" '起始值/可自行修改
    5.     t = "71D:" '终止值/可自行修改
    6.     k = "关键字" '关键字/可自行修改
    7.    
    8.     With Selection
    9.         .HomeKey 6
    10.         With .Find
    11.             .ClearFormatting
    12.             .Text = s
    13.             .Replacement.Text = ""
    14.             .Forward = True
    15.             .MatchWildcards = True
    16.             Do While .Execute
    17.                 With .Parent
    18.                     Do
    19.                         .MoveEnd
    20.                         If .Characters.Last.Text = vbCr Then GoTo sk
    21.                     Loop Until .Text Like s & "*" & t
    22.                     If .Text Like "*" & k & "*" Then
    23.                         .Font.ColorIndex = wdBlue
    24.                     End If
    25. sk:
    26.                     .Start = .End
    27.                 End With
    28.             Loop
    29.         End With
    30.         
    31.         .HomeKey 6
    32.         With .Find
    33.             .ClearFormatting
    34.             .Font.ColorIndex = wdBlue
    35.             .Text = k
    36.             .Replacement.Text = ""
    37.             .Forward = True
    38.             .MatchWildcards = True
    39.             Do While .Execute
    40.                 With .Parent
    41.                     .Font.ColorIndex = wdRed '红色
    42.                     .Font.Bold = True '加粗
    43.                     .Font.Underline = wdUnderlineSingle '下划线
    44. '                    .Start = .End
    45.                 End With
    46.             Loop
    47.         End With
    48.     End With
    49. End Sub
    复制代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-11-23 03:14 , Processed in 0.029693 second(s), 9 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.4

    © 1999-2023 Wooffice Inc.

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

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

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