A
Ann Marie
Hi again Doug and Greg,
My MAIN MACRO does not execute the first 2 options DO FIND AND REPLACE. But
both syntax work in the Find and Replace window. The remainder of the MAIN
MACRO options execute.
Would appreciate if someone could point me in the right direction to fix
this. I would like to expand on my call routines but one step at a time.
Would really appreciate it.
TEST DATA:
20 June 2007
XXX 19 233 444 555
XXX 000 222 222
10 MAY 2006
13 JUNE 2006
13 may 2006
XXXX 123444
And this is a test sentence. This replace is just a test. Thank you for
helping? And that is that.
***MACROS***
Option Explicit
Sub DoFindReplace(FindText As String, ReplaceText As String, _
Optional bMatchWildCards As Boolean = False)
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindText
.Replacement.Text = ReplaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute
'Keep going until nothing found
.Execute Replace:=wdReplaceAll
Loop
'Free up some memory
ActiveDocument.UndoClear
End With
End Sub
'Call the macro:
Public Sub MainMacro()
'Replace spaces with non breaking spaces
Call DoFindReplace("([0-9]{1,2})([ADFJMNOS][A-Za-z]{2,})([0-9]{4})",
"\1^0160\2^0160\3^0160\4")
'Dates - replace spaces with non breaking spaces
Call
DoFindReplace(FindText:="([0-9]{1,2})(([0-9]{1,2})([ADFJMNOS][A-Za-z]{2,})([0-9]{4})",
ReplaceText:="\1^0160\2^0160\3", bMatchWildCards:=True)
'Remove double spaces TEST WORKS
Call DoFindReplace(" ", " ")
'Remove all double tabs TEST WORKS
Call DoFindReplace("^t^t", "^t")
'Remove empty paras (unless they follow a table or start or finish a
doc) TEST WORKS
Call DoFindReplace("^p^p", "^p")
End Sub
My MAIN MACRO does not execute the first 2 options DO FIND AND REPLACE. But
both syntax work in the Find and Replace window. The remainder of the MAIN
MACRO options execute.
Would appreciate if someone could point me in the right direction to fix
this. I would like to expand on my call routines but one step at a time.
Would really appreciate it.
TEST DATA:
20 June 2007
XXX 19 233 444 555
XXX 000 222 222
10 MAY 2006
13 JUNE 2006
13 may 2006
XXXX 123444
And this is a test sentence. This replace is just a test. Thank you for
helping? And that is that.
***MACROS***
Option Explicit
Sub DoFindReplace(FindText As String, ReplaceText As String, _
Optional bMatchWildCards As Boolean = False)
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindText
.Replacement.Text = ReplaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute
'Keep going until nothing found
.Execute Replace:=wdReplaceAll
Loop
'Free up some memory
ActiveDocument.UndoClear
End With
End Sub
'Call the macro:
Public Sub MainMacro()
'Replace spaces with non breaking spaces
Call DoFindReplace("([0-9]{1,2})([ADFJMNOS][A-Za-z]{2,})([0-9]{4})",
"\1^0160\2^0160\3^0160\4")
'Dates - replace spaces with non breaking spaces
Call
DoFindReplace(FindText:="([0-9]{1,2})(([0-9]{1,2})([ADFJMNOS][A-Za-z]{2,})([0-9]{4})",
ReplaceText:="\1^0160\2^0160\3", bMatchWildCards:=True)
'Remove double spaces TEST WORKS
Call DoFindReplace(" ", " ")
'Remove all double tabs TEST WORKS
Call DoFindReplace("^t^t", "^t")
'Remove empty paras (unless they follow a table or start or finish a
doc) TEST WORKS
Call DoFindReplace("^p^p", "^p")
End Sub