- 主题:怎么查找文章中重复的内容
有个几百页的文档
大约每十几页可能有重复,就是说十几页的内容再次出现一次或两次。。。
请问如何方便的找出这些重复,并且删除。
这十几页内容可能是很多段落。
看到网上的方法是查找(< [!^13]*^13) (*)\1
但是不好使
--
FROM 124.235.97.*
用AI试试,AI擅长处理文档,文心一言和Bard都免费
【 在 wuduan 的大作中提到: 】
: 有个几百页的文档
: 大约每十几页可能有重复,就是说十几页的内容再次出现一次或两次。。。
: 请问如何方便的找出这些重复,并且删除。
: 这十几页内容可能是很多段落。
: 看到网上的方法是查找(<[!^13]*^1...
- 来自 水木说
--
FROM 124.127.72.*
成本最低的难道不是找几个学生。。
【 在 wuduan 的大作中提到: 】
: 有个几百页的文档
: 大约每十几页可能有重复,就是说十几页的内容再次出现一次或两次。。。
: 请问如何方便的找出这些重复,并且删除。
: ...................
--
FROM 108.29.173.*
以下是一个示例VBA宏代码,可以用于在Word文档中查找和删除重复的内容:
Sub RemoveDuplicates() Dim doc As Document Set doc = ActiveDocument
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim n As Integer
Dim text1 As String
Dim text2 As String
Dim found As Boolean
'设置查找选项
Options.DefaultHighlightColorIndex = wdYellow
Options.HighlightMergeFields = False
Options.CompareIgnoreFormatting = True
'循环遍历文档中的每一页
For i = 1 To doc.Range.Information(wdNumberOfPagesInDocument)
'获取当前页的文本内容
text1 = doc.Range.Information(wdActiveEndPageNumber)
doc.GoTo wdGoToPage, wdGoToAbsolute, i
text2 = doc.Range.Text
'循环遍历当前页中的每个段落
For j = 1 To doc.Range.Information(wdNumberOfParagraphsInSelection)
'获取当前段落的文本内容
doc.Paragraphs(j).Range.Select
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
text1 = Selection.Text
'在当前页中查找是否有重复的段落
found = False
For k = j + 1 To doc.Range.Information(wdNumberOfParagraphsInSelecti
on)
doc.Paragraphs(k).Range.Select
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExten
d
text2 = Selection.Text
If text1 = text2 Then
'如果找到了重复的段落,则将其删除
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdEx
tend
Selection.Delete
found = True
End If
Next k
'如果当前段落已经被删除,则需要重新遍历当前页中的段落
If found Then
j = j - 1
End If
Next j
Next i
End Sub
这个宏代码会循环遍历文档中的每一页和每个段落,然后在当前页中查找是否有重复的
段落。如果找到了重复的段落,则将其删除。请注意,这个宏代码可能需要一些时间来
执行,具体取决于文档的大小和复杂程度。
【 在 wuduan 的大作中提到: 】
: 有个几百页的文档
: 大约每十几页可能有重复,就是说十几页的内容再次出现一次或两次。。。
: 请问如何方便的找出这些重复,并且删除。
: ...................
--
FROM 119.233.177.*
谢谢,自动化的话,好像只能用vba了
我在网上也看到了类似的代码,
试过了,提示我还需要十几个小时完成,
我还是决定手动做了
【 在 callmebbser 的大作中提到: 】
: 标 题: Re: 怎么查找文章中重复的内容
: 发信站: 水木社区 (Thu Dec 21 07:51:45 2023), 站内
:
: 以下是一个示例VBA宏代码,可以用于在Word文档中查找和删除重复的内容:
:
: Sub RemoveDuplicates() Dim doc As Document Set doc = ActiveDocument
:
: Dim i As Integer
:
: Dim j As Integer
:
: Dim k As Integer
:
: Dim n As Integer
:
: Dim text1 As String
:
: Dim text2 As String
:
: Dim found As Boolean
:
: '设置查找选项
:
: Options.DefaultHighlightColorIndex = wdYellow
:
: Options.HighlightMergeFields = False
:
: Options.CompareIgnoreFormatting = True
:
: '循环遍历文档中的每一页
:
: For i = 1 To doc.Range.Information(wdNumberOfPagesInDocument)
:
: '获取当前页的文本内容
:
: text1 = doc.Range.Information(wdActiveEndPageNumber)
:
: doc.GoTo wdGoToPage, wdGoToAbsolute, i
:
: text2 = doc.Range.Text
:
:
:
: '循环遍历当前页中的每个段落
:
: For j = 1 To doc.Range.Information(wdNumberOfParagraphsInSelection)
:
: '获取当前段落的文本内容
:
: doc.Paragraphs(j).Range.Select
:
: Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
:
: text1 = Selection.Text
:
:
:
: '在当前页中查找是否有重复的段落
:
: found = False
:
: For k = j + 1 To doc.Range.Information(wdNumberOfParagraphsInSelecti
: on)
:
: doc.Paragraphs(k).Range.Select
:
: Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExten
: d
:
: text2 = Selection.Text
:
:
:
: If text1 = text2 Then
:
: '如果找到了重复的段落,则将其删除
:
: Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdEx
: tend
:
: Selection.Delete
:
: found = True
:
: End If
:
: Next k
:
:
:
: '如果当前段落已经被删除,则需要重新遍历当前页中的段落
:
: If found Then
:
: j = j - 1
:
: End If
:
: Next j
:
: Next i
:
: End Sub
:
: 这个宏代码会循环遍历文档中的每一页和每个段落,然后在当前页中查找是否有重复的
: 段落。如果找到了重复的段落,则将其删除。请注意,这个宏代码可能需要一些时间来
: 执行,具体取决于文档的大小和复杂程度。
:
:
:
: 【 在 wuduan 的大作中提到: 】
: : 有个几百页的文档
: : 大约每十几页可能有重复,就是说十几页的内容再次出现一次或两次。。。
: : 请问如何方便的找出这些重复,并且删除。
: : ...................
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 119.233.177.*]
--
FROM 202.98.13.*