ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请问word中如何批量选中复制固定文本后的文本?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-4-17 11:56 | 显示全部楼层 |阅读模式
例如以下文本,“HIS:"是固定文本,需要在任意一段word文字中把所有“HIS:"后面的文本选中并复制出来
这个如何处理?查找和替换只能针对固定文本本身,而这里需要的是固定文本之后的文本提取

His:今日选择是
123
His:今日推荐
456
His:今日吐槽的观点
789

结果应该是:
今日选择是
今日推荐
今日吐槽的观点

TA的精华主题

TA的得分主题

发表于 2016-4-17 11:59 | 显示全部楼层
粘贴到EXCEL,使用分列

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-17 17:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
使用分列我也想过,但固定文本和固定文本间是有其他文本的,所以这里写了123,456,789,分列并不合适,因为一排序,原来的目的就达不到了

TA的精华主题

TA的得分主题

发表于 2016-4-19 09:24 | 显示全部楼层
在主文档中查找[His:]{4,}?{1,30}^13,将目标文本复制出来,再将固定文本替换为无

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-19 21:54 | 显示全部楼层
@不经意的回头  [His:]{4,}?{1,30}^13 未找到搜索项啊

TA的精华主题

TA的得分主题

发表于 2016-4-19 22:15 | 显示全部楼层
asklazyworm 发表于 2016-4-19 21:54
@不经意的回头  [His:]{4,}?{1,30}^13 未找到搜索项啊

注意下第一段中的冒号,在我这里测试通过的

TA的精华主题

TA的得分主题

发表于 2016-4-19 22:17 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-20 09:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
@不经意的回头 感谢您的耐心回复 我用了你的这个代码去搜索,结果出不了你的截图,结果相当于全选啊,我这里是2007的版本,还是我的方法有问题?

Ctrl+F 把代码复制进去,使用通配符,在主文档查找,结果就是全选啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-20 10:24 | 显示全部楼层
@不经意的回头 我在另一个案例中用你的代码,能选择出正确的复制选项,但复制出来后,发现原来的第一个到最后一个去了,原来最后一个到第一个去了,无论复制到word还是xls都是这个结果...

TA的精华主题

TA的得分主题

发表于 2016-4-20 14:55 | 显示全部楼层
  1. Sub 固定文本提取()
  2.     Dim i As Paragraph, j As String, doc As Document
  3.     j = ActiveDocument.Name
  4.     Set doc = Documents.Add
  5.     Documents(j).Activate
  6.     For Each i In ActiveDocument.Paragraphs
  7.         If i.Range Like "His[::]*" Then
  8.             i.Range.Font.Color = wdColorRed
  9.             i.Range.Copy
  10.             doc.Activate
  11.             Selection.EndKey Unit:=wdStory
  12.             Selection.Paste
  13.         End If
  14.     Next
  15.     doc.Paragraphs.Last.Range.Delete
  16.     Documents(j).Close savechanges:=wdDoNotSaveChanges
  17.     doc.Content.Find.Execute findtext:="His:", replacewith:="", Replace:=wdReplaceAll
  18.     doc.Content.Find.Execute findtext:="His:", replacewith:="", Replace:=wdReplaceAll
  19.     MsgBox "提取完毕!文档尚未保存,请自行保存!", vbOKOnly + vbExclamation, "提取感叹句"
  20. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 07:55 , Processed in 0.023904 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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