Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1994|回复: 6

[已解决]VBA Word拿取<>内的字

[复制链接]
发表于 2015-6-17 11:02 | 显示全部楼层 |阅读模式
本帖最后由 10210578 于 2015-6-17 13:37 编辑

请问各位大大
档案word中,如何用VBA拿取<>内的字?

Ex:<ddd>      要ddd
最佳答案
2015-6-17 11:26
  1. Sub Macro1()
  2. With CreateObject("vbscript.regexp")
  3.     .Pattern = "\<\w+\>|\<\W+\>"
  4.     .Global = True
  5.     For Each m In .Execute(ActiveDocument.Range.Text)
  6.         MsgBox Mid(m, 2, Len(m) - 2)
  7.     Next
  8. End With
  9. End Sub
复制代码

13.zip

11.64 KB, 下载次数: 11

发表于 2015-6-17 11:26 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. With CreateObject("vbscript.regexp")
  3.     .Pattern = "\<\w+\>|\<\W+\>"
  4.     .Global = True
  5.     For Each m In .Execute(ActiveDocument.Range.Text)
  6.         MsgBox Mid(m, 2, Len(m) - 2)
  7.     Next
  8. End With
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2015-6-17 11:39 | 显示全部楼层
dsmch 发表于 2015-6-17 11:26

换了我,就直接用instr了,懒得去调试正则表达式。

点评

树上的鸟儿不一定是成双对的,有落单的怎么办?  发表于 2015-6-17 14:43
回复

使用道具 举报

发表于 2015-6-17 11:48 | 显示全部楼层
  1. Sub test()
  2.     t = Split(ThisDocument.Range.Text, "<")
  3.     For i = 1 To UBound(t)
  4.         Debug.Print Split(t(i), ">")(0)
  5.     Next
  6. End Sub
复制代码
回复

使用道具 举报

发表于 2015-6-17 11:52 | 显示全部楼层
估计他的文档中有众多的<#$%^*>存在,想把里面的东东一个一个的都列出来。
2楼的很好了呀,还在多次寻求帮助,真不晓得他还要啥子
给你录了个查找的宏,改了改,大体上也可以实现,只是不如2楼
Sub 宏()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "<*>"
        .Wrap = wdFindContinue
        .MatchWildcards = True
    End With
    Do
      MsgBox Selection.Range.Text
      Selection.Find.Execute
    Loop While Selection.Find.Found
End Sub
回复

使用道具 举报

 楼主| 发表于 2015-6-17 13:27 | 显示全部楼层
那<DDD> 拿出来修改后,怎么放回去
Ex:<ddd>   修改后  <ccc>
回复

使用道具 举报

 楼主| 发表于 2015-6-17 13:38 | 显示全部楼层
找到解答了 谢谢各位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 07:17 , Processed in 0.548947 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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