ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何通过代码将关键字所在的段落提取到新文档中?

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-16 08:54 | 显示全部楼层

谢谢duquancai兄的代码,测试效果很理想!又见字典

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-16 09:34 | 显示全部楼层

能否请duquancai兄修改下代码,对关键字字体进行限定,并做”全字匹配",保证查找的准确性:
只查找音标字体(如arial字体),其它字体(如单词字体“Time New Romans)不做查找
如在查找音标I时,不查找音标aI

TA的精华主题

TA的得分主题

发表于 2019-5-16 12:29 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
tangqingfu 发表于 2019-5-16 09:34
能否请duquancai兄修改下代码,对关键字字体进行限定,并做”全字匹配",保证查找的准确性:
只查找音标 ...

有具体需求,自己修改吧!你也是论坛的大神了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-16 19:01 | 显示全部楼层
duquancai 发表于 2019-5-16 12:29
有具体需求,自己修改吧!你也是论坛的大神了!

VBA我是小白,感谢杜兄的多次指点!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-27 14:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 tangqingfu 于 2019-5-27 18:36 编辑


20楼代码在提取到新文档时无法做到保持原有格式(颜色),请教杜老师,如何修改代码做到提取后保留原有格式(如字体,颜色等)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-28 14:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 tangqingfu 于 2019-5-28 17:03 编辑

以下是杜老师帮写的代码(将关键字所在的段落提取到新文档中),可惜无法做到保持原有格式(颜色),请教如何修改代码做到提取后保留原有格式(如字体,颜色等)?
  1. Sub main()
  2.     Dim doc As Document, re As Object, mh As Object
  3.     Dim mystr$, keystr$, restr$, results$, i&, n&
  4.     If Selection.Type = wdSelectionIP Then
  5.         MsgBox "没选择关键字!": Exit Sub
  6.     Else
  7.         keystr = Selection.Text '选择文档中某一处“关键字”
  8.     End If
  9.     For i = 1 To Len(keystr)
  10.         restr = restr & "\u" & Right("0000" & Hex$(AscW(Mid(keystr, i, 1))), 4)
  11.     Next
  12.     Set doc = ActiveDocument
  13.     mystr = doc.Content.Text
  14.     Set re = CreateObject("vbscript.regexp")
  15.     re.Global = True: re.Pattern = restr
  16.     Dim d As Object
  17.     Set d = CreateObject("Scripting.Dictionary")
  18.     For Each mh In re.Execute(mystr)
  19.         i = mh.FirstIndex: n = mh.Length
  20.         With doc.Range(i, i + n)
  21.             .Expand 4
  22.             d(.Text) = vbNullString
  23.         End With
  24.     Next
  25.     For Each k In d.keys
  26.         results = results & k
  27.     Next
  28.     With Documents.Add
  29.         .Content.InsertAfter results
  30.     End With
  31. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2021-12-15 08:59 | 显示全部楼层
zhanglei1371 发表于 2019-5-11 22:57
问题过于简单,严重缺乏挑战性!难度增加三倍,就有代码了:)^-^

请问一下,能不能帮忙处理一下这个代码?

如何新建一个文档,挑选含有某个字的内容。.zip

19.92 KB, 下载次数: 0

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

本版积分规则

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

GMT+8, 2024-11-23 12:13 , Processed in 0.032568 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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