#1
|
|||
|
|||
Macro to search for specific words in a document
Hi,
I want to create a macro that will run at the end of a much longer macro that will search for specific key words in the newly edited document. I've done some searching here and online and found a code that I thought would work, which is supposed to identify specific words and highlight them. The code runs but nothing seems to happen upon completion. Here's that code: Code:
Sub FindAndHighlight() ' Application.ScreenUpdating = False Dim StrFnd As String, Rng As Range, i As Long StrFnd = "tasks,architecture,java" For i = 0 To UBound(Split(StrFnd, ",")) Set Rng = ActiveDocument.Range With Rng.Find .ClearFormatting .Text = Split(StrFnd, ",")(i) .Replacement.ClearFormatting .Replacement.Highlight = True .Replacement.Text = "^&" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = True .Execute Replace:=wdReplaceAll End With Next Set Rng = Nothing Application.ScreenUpdating = True ' End Sub I want the macro to search for 3 unrelated key words in the document and to alert the user that either there are no matches or that there are some. If this could happen via some sort of dialog box that would be great / highlighting the specific words as the code above describes. Any suggestions as to what's wrong with the code above / what I can do? Thanks! Last edited by macropod; 11-27-2017 at 04:08 PM. Reason: Added code tags |
#2
|
||||
|
||||
The code you posted assumes Word's highlighting has already been set to whatever highlights you want to use; if it's set to 'no highlighting, that's what you'll get. Try:
Code:
Sub FindAndHighlight() Application.ScreenUpdating = False Options.DefaultHighlightColorIndex = wdBrightGreen Dim StrFnd As String, i As Long, StrRpt As String StrFnd = "tasks,architecture,java" With ActiveDocument.Range.Find .ClearFormatting .Replacement.ClearFormatting .Replacement.Highlight = True .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = True For i = 0 To UBound(Split(StrFnd, ",")) .Text = Split(StrFnd, ",")(i) .Replacement.Text = "^&" .Execute Replace:=wdReplaceAll If .Found = True Then StrRpt = StrRpt & vbCr & Split(StrFnd, ",")(i) Next End With If StrRpt = "" Then MsgBox "None of the terms were found.", vbOKOnly Else MsgBox "The following terms were found:" & StrRpt, vbInformation End If Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Thanks, works like a charm!
|
Tags |
find word highlight para, search, word vba |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Help creating VBA code to search multiple word documents for specific group of words | dmreno | Word VBA | 3 | 07-30-2019 02:31 PM |
Search the words of different document | Sandhya | Word | 15 | 11-24-2014 01:29 PM |
Macro to Search for all words with (R) and place in new document | kd12 | Word VBA | 2 | 06-10-2014 02:25 PM |
Need VBA For Macro On How To Remove Specific Words | netchie | Word VBA | 6 | 08-28-2012 03:37 PM |
Macro for highlighting specific number of words | icsjohn | Word VBA | 2 | 12-07-2011 06:44 PM |