![]() |
|
#1
|
|||
|
|||
![]()
This worked really well, taking about 400 seconds. Although it reported several false positives, I am glad that I have something to work with.
I really appreciate your help on this matter. Immensely. In case there are other macros that you can point me towards (super anxious to get my manuscript in the best shape before submission next week), I would be equally grateful. Thanks again and have a Happy Gregorian New Year. |
#2
|
||||
|
||||
![]()
You could use almost identical code for 'sentences' (note my previous caveat):
Code:
Sub FindDuplicateSentences() Application.ScreenUpdating = False Dim i As Long, RngSrc As Range, RngFnd As Range Const Clr As Long = wdBrightGreen Dim eTime As Single eTime = Timer Options.DefaultHighlightColorIndex = Clr With ActiveDocument With .Range.Find .ClearFormatting .Replacement.ClearFormatting .Forward = True .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With For i = 1 To .Sentences.Count If i Mod 100 = 0 Then DoEvents On Error Resume Next Set RngSrc = .Sentences(i) If RngSrc.HighlightColorIndex <> Clr Then Set RngFnd = .Range(.Sentences(i).End, .Range.End) If Len(RngSrc.Text) < 256 Then With RngFnd.Find .Text = RngSrc.Text .Replacement.Text = "^&" .Replacement.Highlight = True .Wrap = wdFindStop .Execute Replace:=wdReplaceAll End With Else With RngFnd With .Find .Text = Left(RngSrc.Text, 255) .Wrap = wdFindStop .Execute End With Do While .Find.Found If RngSrc.Text = .Duplicate.Text Then RngSrc.HighlightColorIndex = Clr .Duplicate.HighlightColorIndex = Clr End If .Collapse wdCollapseEnd .Find.Execute Loop End With End If End If Next End With ' Report time taken. Elapsed time calculation allows for execution to extend past midnight. MsgBox "Finished. Elapsed time: " & (Timer - eTime + 86400) Mod 86400 & " seconds." Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
![]()
the second task took a little over 4500 seconds... But it was worth the wait...this task would have driven me nuts without your help.. I genuinely appreciate it.. However, I would also like to add that, with the "sentences" macro, I also received several false positives....is this because the script also calculates familiarity between sentences such that sentences beyond a given threshold are automatically flagged as duplicates, even without word-for-word duplication...? That would be interesting to know...
Last edited by iamgator; 12-26-2016 at 09:32 PM. Reason: needed to add extra information |
#4
|
||||
|
||||
![]() Quote:
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
![]() |
Tags |
macro, vba |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
Steve81uk | Excel Programming | 4 | 02-02-2015 07:04 PM |
![]() |
cinvest | Word | 1 | 09-29-2014 08:34 PM |
How can I find paragraphs all in italics? | Robert2 | Word | 1 | 01-28-2014 02:54 PM |
How do I find Repeating Words/Phrases? | CCD2016 | PowerPoint | 0 | 12-01-2013 09:37 PM |
![]() |
Robert2 | Word | 1 | 06-30-2013 03:57 AM |