ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何根据关键字筛选出相应的句子

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-7 09:47 来自手机 | 显示全部楼层
mmcha2002 发表于 2018-4-6 22:52
谢谢您。感谢您一直回复我的信息。您的代码太实用了。只是,突然还有个小小的请求。比如说,我想找到一个 ...

你这实际需求很清晰,答案是肯定的,不过肯定是要复杂一些!没时间,有时间也不玩了。
输入任意 关键词 :一个或者多个,输入多个的时候关键词之间有明确的分隔符,比如输入的时候 用英文逗号分割关键词 就行了!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-7 10:59 | 显示全部楼层
duquancai 发表于 2018-4-7 09:47
你这实际需求很清晰,答案是肯定的,不过肯定是要复杂一些!没时间,有时间也不玩了。
输入任意 关键词  ...

还是要谢谢您

TA的精华主题

TA的得分主题

发表于 2018-4-7 17:05 来自手机 | 显示全部楼层
mmcha2002 发表于 2018-4-7 10:59
还是要谢谢您

等其他大神吧!如果等几天还是没人给你服务,到时候我再给你服务到位,你看如何?

TA的精华主题

TA的得分主题

发表于 2018-4-7 23:17 | 显示全部楼层

1.多关键词输入格式:多关键词之间英文逗号分隔如果只输入一个关键词,那么就没必要输入英文逗号,关键词输入顺序无关!2.既然是关键词,那就没有必要重复输入同一个关键词了!话说,你也没有具体说明 重复关键词的查找目的以及逻辑!!!

  1. Sub test()
  2.     Dim findtext As String, n As Integer, k, x As Long
  3.     findtext = InputBox("关键词" & vbCr & "多关键词格式:风,万" & vbCr & "一个关键词格式:风", , "刀,风")
  4.     If findtext = Empty Then Exit Sub
  5.     ActiveDocument.Content.HighlightColorIndex = wdNoHighlight
  6.     k = Split(findtext, ","): n = UBound(k)
  7.     With ActiveDocument.Content.Find
  8.         If n = 0 Then
  9.             Do While .Execute(k(n))
  10.                 With .Parent
  11.                     .Expand wdSentence
  12.                     .HighlightColorIndex = wdYellow
  13.                     x = x + 1
  14.                     .Start = .End
  15.                 End With
  16.             Loop
  17.         Else
  18.             Do While .Execute(k(n))
  19.                 With .Parent
  20.                     .Expand wdSentence
  21.                     If f(k, .Text, n) Then
  22.                         .HighlightColorIndex = wdYellow
  23.                         x = x + 1
  24.                     End If
  25.                     .Start = .End
  26.                 End With
  27.             Loop
  28.         End If
  29.     End With
  30.     MsgBox IIf(x > 0, "找到:" & x & "条句子并标记!", "没有找到符合要求的!")
  31. End Sub
  32. Function f(k, ByVal sr As String, ByVal n As Integer) As Boolean
  33.     Dim x As Integer
  34.     Do While x <= n - 1
  35.         If InStr(sr, k(x)) = 0 Then Exit Do
  36.         x = x + 1
  37.     Loop
  38.     If x = n Then f = True
  39. End Function
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-9 20:48 | 显示全部楼层
duquancai 发表于 2018-4-7 23:17
1.多关键词输入格式:多关键词之间英文逗号分隔;如果只输入一个关键词,那么就没必要输入英文逗号,关键 ...

您能回复实在是让我太感动了。实在是不好意思再麻烦您,但如果您有空闲的时候,不知道能不能解决另外一个问题,如果某个句子没有句号的话,那能不能就不显示出来呢?

比如说:

夜雨寄北
草木知春不久归,百般红紫斗芳菲。
接天莲叶无穷碧,映日荷花别样红。
人面不知何处去,桃花依旧笑春风。
欲把西湖比西子,淡妆浓抹总相宜。
星垂平野阔,月涌大江流。
爆竹声中一岁除,春风送暖入屠苏。
清明时节雨纷纷,路上行人欲断魂。

我想找出所有含雨、北的诗句,但《夜雨寄北》是诗的题目,并不是我们所想要突出显示的句子。能不能把这种不带标点符号的句子直接过滤了呢?




TA的精华主题

TA的得分主题

发表于 2019-10-28 09:23 | 显示全部楼层
duquancai 发表于 2018-4-5 22:36
Sub TEST()
    Dim d As Document, k()
    k = Array("风", "春") '自己添加关键词

请问  .Start = .End什么意思呢

TA的精华主题

TA的得分主题

发表于 2020-11-25 14:09 | 显示全部楼层
duquancai 发表于 2018-4-7 23:17
1.多关键词输入格式:多关键词之间英文逗号分隔;如果只输入一个关键词,那么就没必要输入英文逗号,关键 ...

老师,我这里测试的结果只能查一个关键词,如果多词之间加逗号,就会显示没有查到结果
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-27 21:15 , Processed in 0.044939 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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