![]() |
#4
|
||||
|
||||
![]()
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] |
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 |