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