【发布时间】:2015-12-01 12:32:38
【问题描述】:
如何删除起始词和结束词之间的文本。
我有大约 100 万字的大量文本提取,我想创建一个 VBA 脚本来删除所有不需要的文本。
幸运的是,我有关键词可以查找并删除这些关键词之后的所有文本,直到我想输入的特定终点。
我需要一个程序,它可以找到这些关键词并将它们作为起始词,然后将结束词作为结束位置,并删除它们之间的所有文本。如果单词位于段落中,我想删除该段落。
下面的程序完成了我正在寻找的所有事情,除了它无法遍历文档并对具有相同开始和结束位置的其他消息执行此操作。
Sub SelectRangeBetween()
Selection.HomeKey Unit:=wdStory
'Selection.TypeText Text:="hello"
' The Real script
Dim myrange As Range
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Execute findtext:="From: Research.TA@traditionanalytics.com", Forward:=True, Wrap:=wdFindStop 'this will initiate the start word
Set myrange = Selection.Range
myrange.End = ActiveDocument.Range.End
myrange.Start = myrange.Start
myrange.End = myrange.End + InStr(myrange, "This message has been scanned ") ' this will initiate the end word
myrange.Select
'Selection.Delete
End With
End Sub
【问题讨论】:
-
您需要做的是使用宏记录器设置您的
Find语句,然后使用循环遍历整个文档 -
您好,我已经创建了选择我需要的部分的程序,但文档中还有更多这些部分。我需要一个循环来遍历 word 文档并突出显示每个帐户。请参考下面我的程序
-
脚本看起来更好,但您需要将其设置为问题的编辑而不是答案。
-
我在问如何做到这一点,但我现在点击并理解......应该将它添加到初始问题。
-
就在您的问题下方有一个“编辑”超链接单击它,然后将您的脚本粘贴到那里