ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何在一篇英文中把含有某个单词的句子都列出来?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-10-13 15:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
现在程序是每次列出一个例句,能不能添加一个对话框,在程序执行前,可以自由输入想要给每个单词配几个句子。比如输入3,就会给单词列表里的单词配三个例句。

楼主的要求真是层出不穷啊。
以下代码将前面的相关代码进行了组合,以满足多种需要。但毕竟程序不可能完美,特别是对动词短语的搜索,请楼主将就着用吧。
  1. Sub test6()
  2.     Dim a As String
  3.     Dim fs, f
  4.     Dim findtext() As String, temp As String
  5.     Dim i As Integer, n As Integer, c As Long, info As String
  6.    
  7.     a = InputBox("请输入每个单词所需要的例句数。其中:" & vbCrLf & vbCrLf & _
  8.         "0 全部列出(默认)" & vbCrLf & "-1 指定一个单词搜索", , 0)
  9.     If a = "" Then Exit Sub
  10.     If a = "-1" Then
  11.         ReDim findtext(0)
  12.         findtext(0) = InputBox("请输入要查的单词", , "Number")
  13.     Else
  14.         Set fs = CreateObject("Scripting.FileSystemObject")
  15.         With Application.FileDialog(msoFileDialogFilePicker)
  16.             .Title = "请指定单词列表文本文件"
  17.             .InitialFileName = ActiveDocument.Path
  18.             .AllowMultiSelect = False
  19.             If .Show <> -1 Then Exit Sub
  20.             Set f = fs.OpenTextFile(.SelectedItems(1))
  21.             findtext() = Split(f.ReadAll, vbCrLf)
  22.             f.Close
  23.             Set fs = Nothing
  24.         End With
  25.     End If
  26.    
  27.     With ActiveDocument.Content.Find
  28.         For i = 0 To UBound(findtext)
  29.             .MatchAllWordForms = IIf(findtext(i) Like "*[!A-Za-z]*", False, True)
  30.             info = info & vbCrLf & findtext(i) & vbCrLf
  31.             .Text = findtext(i)
  32.             Do While .Execute
  33.                 n = n + 1
  34.                 c = c + 1
  35.                 If Val(a) > 0 And n > Val(a) Then Exit Do
  36.                 With .Parent
  37.                     .Expand wdSentence
  38.                     temp = .Text
  39.                     If Right(temp, 1) <> Chr(13) Then temp = temp & vbCrLf
  40.                     If Val(a) = 1 Then
  41.                         If InStr(info, vbCrLf & temp) = 0 Then
  42.                             info = info & temp
  43.                         Else
  44.                             info = Replace(info, vbCrLf & findtext(i) & vbCrLf, "")
  45.                             info = Replace(info, vbCrLf & temp, "|" & findtext(i) & vbCrLf & temp)
  46.                             c = c - 1
  47.                         End If
  48.                         Exit Do
  49.                     Else
  50.                         If InStr(info, vbTab & temp) > 0 Then temp = "*" & temp '用星号标记重复的例句
  51.                         info = info & n & vbTab & temp
  52.                     End If
  53.                     .Collapse wdCollapseEnd
  54.                 End With
  55.             Loop
  56.             n = 0
  57.             .Parent.WholeStory
  58.         Next
  59.     End With
  60.    
  61.     info = "共搜索到" & c & "条。" & vbCrLf & info
  62.     If a = "-1" Then
  63.         info = "指定单词搜索:" & findtext(0) & vbCrLf & info
  64.     Else
  65.         info = "指定每个单词所需例句的搜索上限数:" & IIf(Val(a) = 0, "全部", a) & vbCrLf & info
  66.     End If
  67.     Documents.Add.Content.Text = info
  68. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-13 15:31 | 显示全部楼层
谢谢老大,真的是太感激了,帮了我的大忙!代码很完美!祝老大万事如意,好运相随!

TA的精华主题

TA的得分主题

发表于 2014-5-16 15:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如何增加词组的筛选呢

TA的精华主题

TA的得分主题

发表于 2014-12-21 23:00 | 显示全部楼层
sylun 发表于 2010-10-13 15:14
楼主的要求真是层出不穷啊。
以下代码将前面的相关代码进行了组合,以满足多种需要。但毕竟程序不可能完 ...

对您的代码表示万分感谢,我在学习英语,您的代码给我很大帮助,祝您万事如意。谢谢谢谢您~~~~~~~~~~

TA的精华主题

TA的得分主题

发表于 2014-12-22 10:28 | 显示全部楼层
sylun 发表于 2010-10-13 15:14
楼主的要求真是层出不穷啊。
以下代码将前面的相关代码进行了组合,以满足多种需要。但毕竟程序不可能完 ...

如果指定一篇文章,同时对指定的文章内容进行对关键词的搜索,代码该怎么写?

希望高手们将代码加上。

我刚学习,不知道表达的清楚否?希望高手们多多帮忙。

谢谢~~~~~~~~~

TA的精华主题

TA的得分主题

发表于 2018-12-12 15:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好好学习,天天向上

TA的精华主题

TA的得分主题

发表于 2019-6-3 14:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-4-23 23:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-4-25 17:09 | 显示全部楼层
本帖最后由 tcdatongye 于 2021-4-25 20:09 编辑
  1. Dim rng As Range
  2. t1 = "number"'关键词
  3. t = t1 & Chr(13)
  4. Set rng = Selection.Range
  5. rng.StartOf unit:=wdStory
  6. With rng.Find
  7.   .Text = t1
  8.   Do While .Execute
  9.    t = t & rng.Paragraphs(1).Range
  10.   Loop
  11. End With
  12. Documents.Add.Content.Text = t
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 22:19 , Processed in 0.032302 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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