Re: Using Arrays In Macro To Find And Replace ?? Help.
- From: "Graham Mayor" <gmayor@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 30 Jul 2009 08:45:39 +0300
That's how the array works - each word is processd individually. Macros are
not intelligent.
--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP
My web site www.gmayor.com
Word MVP web site http://word.mvps.org
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Designingsally wrote:
Hi there,
I got the code below. The code works perfectly fine.
But this code does not check the words sequentially. Instead it
searches one at a one ie. as you can see the array(1,2) is pen. So
macros searches pen in the whole doc one by one and replaces it.
Notice in the array (2,1) is lovely. If the macros encoutners the
word lovely. It does nt change. Instead it finshes checking all
"pens" and then checks " lovely".
Though the working is fine, but it does not sound intelligent. I m
unable to link both of them together so that macros check words as
they encounter.
Eg:
The pen is lovely. I like pens. There are different types of pens.
All pens are not lovely.
Trying running the macro with this. You will understand it better. I
want the code to use ARRAY, as it saves time for me to add more words.
I will be glad if anyone can come up with appropriate solution.
I have placed the code below. Thanks for the reply in advance. Thanks
for helping a beginner.
Sally
Sub PromptToReplace()
Dim orng As Range
Dim sRep As VbMsgBoxResult
Dim textArray As Variant
Dim i As Long
ReDim textArray(1 To 2, 1 To 2) As String
textArray(1, 1) = "pen"
textArray(1, 2) = "pencils"
textArray(2, 1) = "lovely"
textArray(2, 2) = "bad"
With Selection
For i = 1 To UBound(textArray, 1)
.HomeKey wdStory
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
While .Execute(findText:=textArray(i, 1))
Set orng = Selection.Range
sRep = MsgBox("The incorrect word '" & _
textArray(i, 1) & _
"' was found in the following sentence:" _
& vbCrLf & orng.Sentences(1) & vbCrLf _
& vbCrLf & "Replace this word with '" & _
textArray(i, 2) & "'?", vbYesNoCancel)
Selection.Collapse Direction:=wdCollapseEnd
Selection.MoveStart Unit:=wdCharacter, Count:=1
If sRep = vbCancel Then
Exit Sub
ElseIf sRep = vbYes Then
orng.Text = textArray(i, 2)
End If
Wend
End With
Next
End With
End Sub
.
- Follow-Ups:
- Re: Using Arrays In Macro To Find And Replace ?? Help.
- From: Greg Maxey
- Re: Using Arrays In Macro To Find And Replace ?? Help.
- References:
- Using Arrays In Macro To Find And Replace ?? Help.
- From: Designingsally
- Using Arrays In Macro To Find And Replace ?? Help.
- Prev by Date: Using Arrays In Macro To Find And Replace ?? Help.
- Next by Date: Re: Find and Replace Using Arrays.
- Previous by thread: Using Arrays In Macro To Find And Replace ?? Help.
- Next by thread: Re: Using Arrays In Macro To Find And Replace ?? Help.
- Index(es):
Relevant Pages
|